Hi.
I currently have super su installed and the device is rooted. However, what I want to accomplish (pokemon go spoofing) requires magisk. Its android 8.0 and I have twrp. When I go to install magisk via twrp, I get roughly this:
- Mounting /system, /vendor
- Target image: /dev/block/sda5
- Device platform: arm64
- Constructing environment
- Unpacking boot image
- Checking ramdisk status
! Boot image patched by unsupported programs
!Please restore stock boot image
- Unmounting Partitions
Updater process ended with Error: 1
Error installing zip file '/sdcard/Download/Magisk-v17.1.zip
Updating partition details...
...done
No idea what to do from here. Do I need to get rid of super su? and how would I do that? Thank you all in advance.
https://www.didgeridoohan.com/magis..._another_systemless_root_solution_to_MagiskSU
Related
I am having super troubles getting the Moto E4 to work with Magisk root. Here are my logs:
Log for 13.1-13.3 (all do same thing) Magisk flash:
Code:
Updating partition details...
..done
Full SELinux support is present.
MTP Enabled
Installing zip file '/external_sd/Magisk-v13.1.zip'
Checking for MD5 file...
Skipping MD5 check: no MD5 file found
***********************
* Magisk v13.1 Installer
***********************
- Mounting /system, /vendor, /cache, /data
- Device platform: arm
- Constructing environment
- Creating /data/magisk.img
- Mounting /data/magisk.img to /magisk
! Magisk image mount failed...
Updater process ended with ERROR: 1
Error installing zip file '/external_sd/Magisk-v13.1.zip'
Updating partition details...
...done
Log for 12.0 Magisk flash:
Code:
Installing zip file '/external_sd/Magisk-v12.0.zip'
Checking for MD5 file...
Skipping MD5 check: no MD5 file found
***********************
Magisk v12.0 Boot Image Patcher
***********************
- Mounting /system(ro), /vendor, /cache, /data
- Device platform: arm
- Constructing environment
- /data/magisk.img detected!
- Mounting /data/magisk.img to /magisk
- Found Boot Image: /dev/block/mmcblk0p37
- Unpacking boot image
- Checking patch status
- Backing up stock boot image
- Patching ramdisk
- Repacking boot image
- Flashing new boot image
- Unmounting partitions
- Done
Updating partition details...
..done
Seems to have worked but didn't. After I open and update manager it says no root.
Followed this here on the first page:
https://forum.xda-developers.com/moto-e4/help/root-question-t3626349
BUT:
Diverged to use Magisk rather than Phh SuperSU from this page, can't get 13.1-13.3 to flash though. Redid stock boot image and reflashed entire ROM a few times deleting cache, etc:
https://forum.xda-developers.com/moto-e4/help/root-question-t3626349/page2
Any ideas?
Thanks.
JD495 said:
I am having super troubles getting the Moto E4 to work with Magisk root. Here are my logs:
Log for 13.1-13.3 (all do same thing) Magisk flash:
Code:
Updating partition details...
..done
Full SELinux support is present.
MTP Enabled
Installing zip file '/external_sd/Magisk-v13.1.zip'
Checking for MD5 file...
Skipping MD5 check: no MD5 file found
***********************
* Magisk v13.1 Installer
***********************
- Mounting /system, /vendor, /cache, /data
- Device platform: arm
- Constructing environment
- Creating /data/magisk.img
- Mounting /data/magisk.img to /magisk
! Magisk image mount failed...
Updater process ended with ERROR: 1
Error installing zip file '/external_sd/Magisk-v13.1.zip'
Updating partition details...
...done
Log for 12.0 Magisk flash:
Code:
Installing zip file '/external_sd/Magisk-v12.0.zip'
Checking for MD5 file...
Skipping MD5 check: no MD5 file found
***********************
Magisk v12.0 Boot Image Patcher
***********************
- Mounting /system(ro), /vendor, /cache, /data
- Device platform: arm
- Constructing environment
- /data/magisk.img detected!
- Mounting /data/magisk.img to /magisk
- Found Boot Image: /dev/block/mmcblk0p37
- Unpacking boot image
- Checking patch status
- Backing up stock boot image
- Patching ramdisk
- Repacking boot image
- Flashing new boot image
- Unmounting partitions
- Done
Updating partition details...
..done
Seems to have worked but didn't. After I open and update manager it says no root.
Followed this here on the first page:
https://forum.xda-developers.com/moto-e4/help/root-question-t3626349
BUT:
Diverged to use Magisk rather than Phh SuperSU from this page, can't get 13.1-13.3 to flash though. Redid stock boot image and reflashed entire ROM a few times deleting cache, etc:
https://forum.xda-developers.com/moto-e4/help/root-question-t3626349/page2
Any ideas?
Thanks.
Click to expand...
Click to collapse
Mine was rooted with Magisk but I just reset to permanently flash TWRP and I'm running into the same issues. Did you ever find a fix?
BUG
on Magisk v15.3 (non-beta)
on Magisk Manager 5.5.5
I can install modules after downloading and installing Magisk for the first time. But when I reboot my phone, I can no longer install modules. Error is:
Code:
- Found /data/adb/magisk_merge.img
- Mounting /data/adb/magisk_merge.img to /dev/tmp/magisk_img
! /data/magisk_merge.img mount failed...
Failed!
! Installation failed
Have tested multiple times on Xiaomi Mi A1.
HEllo everybody
MAGISK V15.3 installed on Samsung TAB S2 SM-T810.
I tried to install MAGISK v16.O with MAGISK installer
Installation failed with this log
- Device platform: arm
- Extracting files
- Patch boot/ramdisk image: /dev/block/mmcblk0p9
boot_patch.sh: ./util_functions.sh: line 15: ps: Permission denied
boot_patch.sh: ./util_functions.sh: line 15: grep: Permission denied
boot_patch.sh: ./util_functions.sh: line 15: grep: Permission denied
boot_patch.sh: ./util_functions.sh: line 16: grep: Permission denied
boot_patch.sh: ./util_functions.sh: line 16: grep: Permission denied
boot_patch.sh: ./util_functions.sh: line 17: id: Permission denied
boot_patch.sh: ./util_functions.sh: line 17: grep: Permission denied
boot_patch.sh: line 75: chmod: Permission denied
boot_patch.sh: line 78: ./magiskinit: Permission denied
- Unpacking boot image
boot_patch.sh: line 87: ./magiskboot: Permission denied
boot_patch.sh: line 117: ./magiskboot: Permission denied
boot_patch.sh: line 148: ./magiskboot: Permission denied
boot_patch.sh: line 150: rm: Permission denied
boot_patch.sh: line 177: ./magiskboot: Permission denied
- Checking ramdisk status
- Patching ramdisk
- Repacking boot image
! Unable to repack boot image!
Failed!
! Installation failed
Any Idea ?
Thanks for your help
I have Samsung S5 g900w8
Identical problem.. my log file is exactly the same.
Try uninstalling v15.3 first and then install v16.0 clean.
I have uninstalled magisk 15.3, then installed magisk 16.0 with twrp.
Its perfect !
Thanks for your help
I did the Uninstaller /clean install method, which did update me to v16. Unfortunately now it fails safety net and apps can all detect root.
Lem0ns said:
I did the Uninstaller /clean install method, which did update me to v16. Unfortunately now it fails safety net and apps can all detect root.
Click to expand...
Click to collapse
It seems like some users have had issues with MagiskHide after updating to v16... Try toggling MagiskHide off and on. If that still doesn't work, navigate to /data/property and delete the file persist.magisk.hide, if it exists.
Uploading a Magisk debug log would also be useful.
Didgeridoohan said:
It seems like some users have had issues with MagiskHide after updating to v16... Try toggling MagiskHide off and on. If that still doesn't work, navigate to /data/property and delete the file persist.magisk.hide, if it exists.
Uploading a Magisk debug log would also be useful.
Click to expand...
Click to collapse
I've tried toggling everything off /on. I've Uninstalled and reinstalled twice.
The persist.magisk.hide file wasn't there.
I'm not sure how to install the beta version in order to get the debug log.
If I just go back to an older version, will this fix?
Lem0ns said:
I'm not sure how to install the beta version in order to get the debug log.
Click to expand...
Click to collapse
Change update channel in the Manager settings you beta and press install...
If I just go back to an older version, will this fix?
Click to expand...
Click to collapse
No it won't (well, maybe for you, but the underlying issue won't be).
Please at least provide the debug log before reverting. Make sure you've done a SafetyNet check before saving the log.
Didgeridoohan said:
Change update channel in the Manager settings you beta and press install...
No it won't (well, maybe for you, but the underlying issue won't be).
Please at least provide the debug log before reverting. Make sure you've done a SafetyNet check before saving the log.
Click to expand...
Click to collapse
First, thank you for all of your help. I'm still not able to get a debug log. I have toggled 2 Beta And pressed install but it's still just downloads the same file version 16 and won't install internally (see above post). When I install with TW RP it messed up the boot partition and I had to restore from backup. The next attempt it seemed to install fine but there is no log file in the ADB directory. How can I tell if the beta is installed?
I wish I hadn't tried to update. The previous version worked great and I only updated because it was nagging me 200 times a day and I have a hard time not updating to the newest version of things.
Just in case something helps here's a timeline of what I tried.
-direct install from previous version several times (failed with unable to repack boot image error)
-install via zip in TWRP - success - fails safety net + hide doesn't work
-toggle all settings on/off etc. (side note... sometimes settings don't "stick". like I toggle the hosts file setting on or off and then close the menu and when I open it it's back on/off as if I hadn't changed it)
-try just reinstalling - boots right to odin/download mode
-restore boot partition from backup - boots fine, still fails safety net
-try "core function only" mode - magisk asks to reboot manually... try this and it comes up in regular mode... toggle the switch again and reboot and it seems to work. I get SU access but still fails safety net.
-try uninstalling, reboot, re-install via TWRP.. no luck.. try formatting system partition and restore from backup.. reinstall magisk.. same result.
-toggle to beta update path, click install. Not sure what is supposed to happen here. It appears to download exactly the same file as the non beta. It won't install direct and when I flash with TWRP it doesn't appear different. Still fails safet net. When I browse to data/adb there are no log files.
I grabbed the 15.2 version and installed it. Everything seems to work now.
Thanks again for your help. Maybe I'll try again on the next update.
sumsung J720F with Oreo 8.0.0
magisk installed
patching the boot.img and at the end i have
! Unable to repack boot image!
! Installation failed
any help idea plz ???
here is the full log of Magisk
Code:
- Copying image to cache
- Device platform: arm64-v8a
- Downloading zip
... 0%
1038+1 records in
1038+1 records out
1063528 bytes transferred in 0.027 secs (39389925 bytes/sec)
- Unpacking boot image
MagiskBoot v18.1(18100) (by topjohnwu) - Boot Image Modification Tool
Parsing boot image: [/data/user_de/0/com.topjohnwu.magisk/install/boot.img]
HEADER_VER [0]
KERNEL_SZ [22504320]
RAMDISK_SZ [4067161]
SECOND_SZ [4278190336]
EXTRA_SZ [738199576]
RECOV_DTBO_SZ [3489687392]
OS_VERSION [41.68.0]
PATCH_LEVEL [2000-01]
PAGESIZE [8]
NAME [RPRA09A001KU]
CMDLINE [ndroidboot.selinux=permissive ��_�]
CHECKSUM [c6]
Invalid DTB detection at 0xe936a2: header tag of first node != FDT_BEGIN_NODE
Invalid DTB detection at 0xe9e587: header tag of first node != FDT_BEGIN_NODE
Invalid DTB detection at 0xea93ad: header tag of first node != FDT_BEGIN_NODE
Invalid DTB detection at 0xeb4133: header tag of first node != FDT_BEGIN_NODE
Segmentation fault
- Checking ramdisk status
MagiskBoot v18.1(18100) (by topjohnwu) - Boot Image Modification Tool
- Stock boot image detected
- Backing up stock boot image
MagiskBoot v18.1(18100) (by topjohnwu) - Boot Image Modification Tool
Compressing to [stock_boot_2f3acf3530c9d7aafc3a2370f747a32ea107f0a3.img.gz]
cp: can't stat 'ramdisk.cpio': No such file or directory
- Patching ramdisk
MagiskBoot v18.1(18100) (by topjohnwu) - Boot Image Modification Tool
Add entry [init] (0750)
Patch with flag KEEPVERITY=[false] KEEPFORCEENCRYPT=[true]
Segmentation fault
- Repacking boot image
MagiskBoot v18.1(18100) (by topjohnwu) - Boot Image Modification Tool
Parsing boot image: [/data/user_de/0/com.topjohnwu.magisk/install/boot.img]
HEADER_VER [0]
KERNEL_SZ [22504320]
RAMDISK_SZ [4067161]
SECOND_SZ [4278190336]
EXTRA_SZ [738199576]
RECOV_DTBO_SZ [3489687392]
OS_VERSION [41.68.0]
PATCH_LEVEL [2000-01]
PAGESIZE [8]
NAME [RPRA09A001KU]
CMDLINE [ndroidboot.selinux=permissive ��_�]
CHECKSUM [c6]
Invalid DTB detection at 0xe936a2: header tag of first node != FDT_BEGIN_NODE
Invalid DTB detection at 0xe9e587: header tag of first node != FDT_BEGIN_NODE
Invalid DTB detection at 0xea93ad: header tag of first node != FDT_BEGIN_NODE
Invalid DTB detection at 0xeb4133: header tag of first node != FDT_BEGIN_NODE
Segmentation fault
! Unable to repack boot image!
! Installation failed
Hi,
Today I was try to install magisk root using Magisk Manager. I am having problems installing it.
My Android version: 6.0
The log:
- Copying image locally
- Target image: /data/user/0/com.topjohnwu.magisk/install/boot.img
- Device platform: arm64-v8a
- Extracting files
- Unpacking boot image
MagiskBoot v16.0(1600) (by topjohnwu) - Boot Image Modification Tool
Parsing boot image: [/data/user/0/com.topjohnwu.magisk/install/boot.img]
No boot image magic found!
! Unable to unpack boot image
Failed!
! Installation failed
Thank you
HI
Update 13.04.2023 /bs
To install Magisk v26.0 or newer the script version 25.01.2023 v2.5.1.0 is necessary.
Unfortunately there is a new feature in Magisk v26.x that prevents the full installation of Magisk from within a booted recovery; from the Magisk docs:
This means that any installation of Magisk v26+ using custom recovery will be incomplete; a subsequent re-installation through the Magisk app after booting up is required.
Click to expand...
Click to collapse
Therefor currently the installation of Magisk v26.x via script without user intervention does not yet work
I wrote a little shell script for Linux (bash) to add Magisk to the boot partition of a phone without user intervention called install_magisk_via_twrp.sh.
This is useful for example to re-install Magisk into the boot partition after an OS upgrade .
The script uses only the commands fastboot and adb, a recovery image (e.g. TWRP), and the patch script from Magisk to re-install Magisk into the boot partition.
Notes
Note that the script version 1.1.0.0 or newer also works if the phone is secured via PIN or something similar.
Since version 2.0.0.0 it is not necessary anymore to install Magisk via Magisk App into a boot image file before starting the script.
Since version 2.0.0.0 the script can install Magisk into the partition even if the Magisk app is not installed yet.
SInce version 2.1.0.0 the script will also copy the Magisk apk to the phone file if requested via parameter.
Version 2.5.1.0 of the script install_magisk_via_twrp.sh or newer of the script is necessary to install Magisk v26.1 or newer
The usage for the script is:
Code:
[ OmniRom 13 Dev - [email protected] /data/develop/android/scripts_on_linux ] $ ./install_magisk_via_twrp.sh -h
install_magisk_via_twrp.sh version - v2.3.0.0 - add Magisk to the boot partition of a phone running Android using TWRP
install_magisk_via_twrp.sh [-h|help|-H] [boot_slot] [wait=n] [dd|fastboot] [twrp_image] [cleanup] [delete_adb_dir] [adb_only] [use_apk] [copy_apk]
[ OmniRom 13 Dev - [email protected] /data/develop/android/scripts_on_linux ] $
Use the parameter -H to print the detailed usage:
Spoiler: Detailed usage
Code:
[ OmniRom 13 Dev - [email protected] /data/develop/android/scripts_on_linux ] $ ./install_magisk_via_twrp.sh -H
install_magisk_via_twrp.sh version - v2.3.0.0 - add Magisk to the boot partition of a phone running Android using TWRP
Usage
install_magisk_via_twrp.sh [-h|help|-H] [boot_slot] [wait=n] [dd|fastboot] [twrp_image] [cleanup] [delete_adb_dir] [adb_only] [use_apk] [copy_apk]
All parameter are optional. The parameter can be used in any order.
Use the parameter "help" or "-H" to print the detailed usage help; use the parameter "-h" to print only the short usage help
The parameter "boot_slot" can be a, b, active, inactive, next, current; default is the current boot slot of the phone
The value for the parameter "wait" is the number of seconds to wait before starting the script to install Magisk on the phone
This seems to be necessary to avoid errors while repacking the boot image. The default wait time is 10 seconds.
Use the parameter "dd" to request repatching via dd in an adb session ; use the parameter "fastboot" to request repatching via "fastboot"
Default is to use "dd" to flash the patched boot image.
The parameter "twrp_image" can be used to define another TWRP image to use. The parameter is optional - the
default for "twrp_image" is hardcoded in the script (variable TWRP_IMAGE)
The default TWRP image of the script is the TWRP for the ASUS Zenfone 8.
Use the parameter "cleanup" to delete the directory /data/MagiskInst at script end
If the parameter "delete_adb_dir" is used the script will delete all files and directories created in the directory /data after Magisk
was successfully installed into the boot partition
If the parameter "adb_only" is used the script will only install the directories and binaries for Magisk in the directory /data/adb.
The script will unpack the necesseray files for adding Magisk to the boot partition from the installed Magisk apk file to
the temporary directory /data/MagiskInst if the files in /data/adb/magisk are missing.
Use the parameter "use_apk" to force the script to use the files from the Magisk app even if the files in /data/adb/magisk exist.
If the parameter "copy_apk" is used the script will copy the Magisk apk file to the phone.
The script now can also install Magisk into a boot partition without an installed Magisk app. To use this feature copy the Magisk apk file
(Magisk*apk) to the directory /data or /sdcard/Download on the phone before starting the script or use the parameter "copy_apk".
The phone to patch must be attached via USB.
The phone can be either in fastboot mode, in normal mode with enabled adb support, or already booted from the TWRP image
To change some of the values used by the script you can set environment variables before starting the script:
Set the environment variable REBOOT to "yes" before starting the script to automatically reboot the phone after patching the new image
Set the environment variable REBOOT to "no" before starting the script to disable the automatic reboot after patching the new image.
Set the environment variable SERIAL_NUMBER to the serial number of the phone to patch if there is more then one phone connected via USB
Set the environment variable ADB_OPTIONS to the options to be used with the adb command
Set the environment variable FASTBOOT_OPTIONS to the options to be used with the fastboot command
Set the environment variable DOWNLOAD_DIR_ON_PHONE to the data directory to use on the phone (def.: /sdcard/Download)
Set the envionment variable MAGISK_APK_FILE to the Magisk apk file to use
The default TWRP image to use is "/data/backup/ASUS_ZENFONE8/twrp/current_twrp.img"
[ OmniRom 13 Dev - [email protected] /data/develop/android/scripts_on_linux ] $
In the default the script will ask the user for input before rebooting the phone from the patched boot partition.
To disable this request call the script like this
Code:
REBOOT=yes install_magisk_via_twrp.sh
Additional infos
Prerequisites
the Magisk App; either installed or as apk file
a computer running Linux with working adb and fastboot binaries available via PATH variable
a phone with unlocked boot loader
a working recovery image (e.g. TWRP) for the attached phone that automatically mounts /data and has enabled adb support (For the ASUS Zenfone 8 the official TWRP image from https://twrp.me/asus/zenfone8.html version 3.7.0 or newer can be used)
Test Environment
Tested on an ASUS Zenfone 8 and with
OmniROM 12 (Android 12) and Magisk v24.3
OmniROM 12 (Android 12) and Magisk v25.0
OmniROM 12 (Android 12) and Magisk v25.2
OmniROM 13 (Android 13) and Magisk v25.2
AospExtended 9.0 w/o GAPPS (Android 12) and Magisk v24.3
AospExtended 9.0 w/o GAPPS (Android 12) and Magisk v25.0
ASUS Original Android 11 and Magisk v24.3
ASUS Original Android 12 and Magisk v24.3
ASUS Original Android 13 Beta 1 and Magisk v25.0
Details
The script uses the scripts and binaries from the directory /data/adb/magisk. If these executables do not exist the script searches for the installed Magisk apk file /data/app/*/com.topjohnwu.magisk*/base.apk and extracts the scripts and binaries from that file. If the Magisk apk is not installed the script searches for the Magisk APK file Magisk*.apk in the directories /sdcard/Download and /data and extracts the scripts and executables from that file if found.
If the parameter copy_apk is used the script copies the Magisk apk file to the directory /sdcard/Download on the phone or, if that directory does not exist, to the directory /data on the phone
The patched boot images will be created in the directory /sdcard/Downloads on the phone (variable DOWNLOAD_DIR_ON_PHONE)
The script uses the original script called boot_patch.sh from Magisk to patch the boot image.
You can execute the script as often as you like.
The script will not delete the created files in the directory /sdcard/Download on the phone so you might do a cleanup of that directory manual
If the directory /sdcard/Download is not available the script will use the directory /tmp for temporary files (Note: /tmp is mounted on a ramdisk)
If the check sum of the boot image before the patching is equal to the check sum after the successfull patching then Magisk was already installed in the boot partition
The script will boot the phone up to 4 times.
Trouble Shooting
- Error message like this
Code:
/data/adb/magisk/boot_patch.sh[211]: can't create /proc/self/fd/: Is a directory
can be ignored (these are only error messages from the function to print some additional messages)
Note: Since version 2.0.0.0 these error messages should not occur anymore.
- Patching the boot partition via "dd" fails sometimes for unknown reason so you should only use it if you know how to fix a damaged boot partition!
- Downloading the patched boot image via "adb pull" (neccessary for patching the boot partition using fastboot) sometimes fails for unknown reason:
So if you get an error message like this:
Code:
[ 77%] /sdcard/Download/patched_boot_a.391985.img
ERROR: Error downloading the file "/sdcard/Download/patched_boot_a.391985.img" from the phone!
just restart the script again (or download the file and flash the boot partition manually)
- If the adb connection dies and there are error messages like this
Code:
adb: insufficient permissions for device
restart the adb server using
Code:
adb kill-server
if that does not work disconnect and reconnect the USB cable
Spoiler: Sample output of the script
Code:
[[email protected] /data/backup/Android/scripts_on_linux]$ ./install_magisk_via_twrp.sh
./install_magisk_via_twrp.sh version - 2.0.0.0 - add Magisk to the boot partition of a phone running Android using TWRP
Using the TWRP image hardcoded in the script: "/data/backup/ASUS_ZENFONE8/twrp/twrp-3.7.0_12-0-I006D.img"
Checking the script prerequisites ...
Will wait 10 second(s) before starting the script on the phone
The script is running as user "xtrnaw7" -- will use "sudo" for the fastboot commands ...
Will patch the boot partition on the attached phone with the serial number "M6AIB760D0939LX"
Using the options "-d -s M6AIB760D0939LX " for the adb commands
Using the options " -s M6AIB760D0939LX " for the fastboot commands
Checking for a connected phone booted into fastboot mode ...
No attached phone in fastboot mode found
Checking for an attached phone with working access via adb (USB) ...
Linux localhost 5.4.147-Omni-qgki-perf-gea6f815f5af9-dirty #42 SMP PREEMPT Tue Sep 27 18:03:41 CEST 2022 aarch64
... found a phone connected via USB with working adb access
The phone is booted in normal mode
The installed OS is based on Android 12 (Wed Aug 10 06:59:46 CEST 2022); the description for the distribution is "omni_zenfone8-user 12 SQ3A.220605.009.A1 eng.xtrnaw.20220810.065947 release-keys"
The installed version of Magisk is com.topjohnwu.magisk versionCode 25200
Booting the phone into the fastboot mode now ...
Waiting up to 60 seconds for the boot into the fastboot mode ...
Booting the phone from the TWRP image "/data/backup/ASUS_ZENFONE8/twrp/twrp-3.7.0_12-0-I006D.img" now ...
Sending 'boot.img' (98304 KB) OKAY [ 2.489s]
Booting OKAY [ 10.359s]
Finished. Total time: 12.888s
Waiting up to 60 seconds for the boot of the phone ....
Retrieving the current boot slot from the phone ...
The current boot slot is "_b"
The boot slot to patch is "_b"
The boot partition to patch is "boot_b"
Checking if the Magisk patch script "boot_patch.sh" exists on the phone ....
-rwxr-xr-x 1 root root 5987 2022-10-27 07:33 /data/adb/magisk/boot_patch.sh
Checking if the download directory "/sdcard/Download" exists on the phone ....
/sdcard/Download
Creating the boot image file "/sdcard/Download/boot_b.732627.img" from the partition "/dev/block/by-name/boot_b" ...
196608+0 records in
196608+0 records out
100663296 bytes (96 M) copied, 0.308243 s, 311 M/s
Checking the result ...
-rw-rw---- 1 root media_rw 100663296 2022-10-28 09:51 /sdcard/Download/boot_b.732627.img
The check sums are:
The check sum of the boot partition "/dev/block/by-name/boot_b" on the phone is "4108888341"
The check sum of th boot image file on the phone is "/sdcard/Download/boot_b.732627.img" is "4108888341"
Patching the boot image file "/sdcard/Download/boot_b.732627.img" ...
Waiting now 10 seconds ...
- Unpacking boot image
Parsing boot image: [/sdcard/Download/boot_b.732627.img]
HEADER_VER [3]
KERNEL_SZ [42025472]
RAMDISK_SZ [34080597]
OS_VERSION [12.0.0]
OS_PATCH_LEVEL [2022-05]
PAGESIZE [4096]
CMDLINE []
KERNEL_FMT [raw]
RAMDISK_FMT [gzip]
VBMETA
- Checking ramdisk status
Loading cpio: [ramdisk.cpio]
- Stock boot image detected
- Patching ramdisk
Loading cpio: [ramdisk.cpio]
Add entry [init] (0750)
Create directory [overlay.d] (0750)
Create directory [overlay.d/sbin] (0750)
Add entry [overlay.d/sbin/magisk64.xz] (0644)
Patch with flag KEEPVERITY=[false] KEEPFORCEENCRYPT=[false]
Found fstab file [system/etc/fstab.postinstall]
Remove pattern [,avb_keys=/product/etc/security/avb/system_other.avbpubkey]
Loading cpio: [ramdisk.cpio.orig]
Backup mismatch entry: [init] -> [.backup/init]
Record new entry: [overlay.d] -> [.backup/.rmlist]
Record new entry: [overlay.d/sbin] -> [.backup/.rmlist]
Record new entry: [overlay.d/sbin/magisk64.xz] -> [.backup/.rmlist]
Backup mismatch entry: [system/etc/fstab.postinstall] -> [.backup/system/etc/fstab.postinstall]
Create directory [.backup] (0000)
Add entry [.backup/.magisk] (0000)
Dump cpio: [ramdisk.cpio]
- Repacking boot image
Parsing boot image: [/sdcard/Download/boot_b.732627.img]
HEADER_VER [3]
KERNEL_SZ [42025472]
RAMDISK_SZ [34080597]
OS_VERSION [12.0.0]
OS_PATCH_LEVEL [2022-05]
PAGESIZE [4096]
CMDLINE []
KERNEL_FMT [raw]
RAMDISK_FMT [gzip]
VBMETA
Repack to boot image: [new-boot.img]
HEADER_VER [3]
KERNEL_SZ [42025472]
RAMDISK_SZ [34331854]
OS_VERSION [12.0.0]
OS_PATCH_LEVEL [2022-05]
PAGESIZE [4096]
CMDLINE []
Checking the result ...
-rw-r--r-- 1 root root 100663296 2022-10-28 09:51 /data/adb/magisk/new-boot.img
The patched boot image is "/sdcard/Download/patched_boot_b.732627.img"
Waiting now 5 seconds ...
Patching the partition "/dev/block/by-name/boot_b" from the patched boot image file "/sdcard/Download/patched_boot_b.732627.img" via dd ...
196608+0 records in
196608+0 records out
100663296 bytes (96 M) copied, 4.721236 s, 20 M/s
Checking the result ....
The check sums for the images and devices on the phone are:
4108888341 100663296 /sdcard/Download/boot_b.732627.img
3369959638 100663296 /sdcard/Download/patched_boot_b.732627.img
3369959638 100663296 /dev/block/by-name/boot_b
OK, patching the boot partition "/dev/block/by-name/boot_b" was successfull
*** Press return to reboot the phone now
Rebooting the phone now ...
[[email protected] /data/backup/Android/scripts_on_linux]$
Update 03.07.2022 /bs
The script now uses the directory /tmp for temporary file if the directory /sdcard/Download is not available. Therefor it will also work if the phone is secured by a PIN or something similar.
Update 05.07.2022/bs
The script is also available on my web site:
http://bnsmb.de/files/public/Android/install_magisk_via_twrp.sh
Update 30.12.2022/bs
Updated the usage help for the script to match the version 2..3.0 of the script
Update 28.10.2022 /bs
Updated the post to match the new script version 2.0.0.0
Update 17.12.2022 /bs
Updated the post to match the new script version 2.1.0.0
see here for How to install TWRP via script
Update 13.04.2023 /bs
To install Magisk v26.0 or newer the script version 25.01.2023 v2.5.1.0 is necessary.
Unfortunately there is a new feature in Magisk v26.x that prevents the full installation of Magisk from within a booted recovery; from the Magisk docs:
This means that any installation of Magisk v26+ using custom recovery will be incomplete; a subsequent re-installation through the Magisk app after booting up is required.
Click to expand...
Click to collapse
Therefor currently the installation of Magisk v26.x via script without user intervention does not yet work
In Magisk v26.0 the developer changed the code so that it's not possible anymore to install Magisk into the boot partition while booted from a recovery image.
from the Magisk change log:
"This means that any installation of Magisk v26+ using custom recovery will be incomplete; a subsequent re-installation through the Magisk app after booting up is required."
The installation of Magisk v26.x while booted into the recovery (for example using my script install_magisk_via_twrp.sh; see How to install Magisk into the boot partition using script) will succeed but executing the Magisk app after the necessary reboot will end with this dialog:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
After pressing OK in that dialog Magisk will reinstall itself in the boot partition and reboot. And afterwards Magisk works again. But that step needs user intervention.
Without executing this additional step Magisk won't work. There is no way to trigger this reinstallation via an CLI command that is usable in a script (at least I did not found it until now ...)
Unfortunately, Magisk also does not execute the init scripts from /data/adb/post-fs-data.d or /data/adb/service.d in this state.
Therefor the automatic installation of Android, TWRP, Magisk, etc like implemented in the tasks in prepare_phone.include (see How to install and configure the Android OS for details) will fail.
To get around this I added some code to the script install_magisk_via_twrp.sh to support the installation of Magisk v26:
install_magisk_via_twrp.sh version v3.1.0.0 (or newer) can now be used to also install Magisk v26 into the boot partition. There are two new parameter for the script install_magisk_via_twrp.sh to select the method to use for the installation:
oldmethod - install Magisk into the boot partition while booted into a recovery
newmethod - install Magisk into the boot partition image while booted into the Android OS
The installation using the "newmethod" only works if their is a working adb connection to the running Android OS on the phone.
Without one of the two new parameter the script will check the Magisk apk file to detect the necessary method to install Magisk into the boot partition. The default method if no apk file is used is still the old method.
Patching the boot image with Magisk v26 is done using these steps:
boot the phone from a TWRP image
create an image of the boot partition while booted from the TWRP image
copy the boot partition image and the Magisk executables to a directory that can be accessed by the user shell while booted into the Anroid OS
boot the phone into the Android OS
patch the boot partition image using the Magisk binaries (that can be done by the non-root user shell)
reboot the phone from a TWRP image
install the patched boot image via dd or fastboot
To do an automatic installation via script using Magisk v26 I added another task to prepare_phone.include:
install_magisk_v26_in_boot_partition
This task will install Magisk using the new method described above.
Because the installation of Magisk v26 needs a working adb connection the tasks in prepare_phone.include will first install Magisk v25.x and enable adb via Magisk init script like before. After this is done Magisk v26 can be installed via script.
So the new task list to install and configure the Android OS using the tasks in the file prepare_phone.include is:
Bash:
DEFAULT_TASKS="
enable_disable_abort_on_error:enable
boot_phone_from_twrp_image
install_os:noreboot:factory_reset
install_twrp:noreboot:next
#
# first install Magisk v25.x into the boot partition; this installation is necessary to
# enable the access via adb to the phone; the Magisk installation will be overwritten later
# with Magisk v26 or newer
#
install_magisk_in_boot_partition_only:noreboot:next
enable_adb:reboot
#
install_magisk_in_data_adb_only:noreboot:copy_apk
enable_root_access_for_the_shell:reboot
wait_for_access_via_adb:120:kill
#
# the next step is necessary to install Magisk v26 or newer
#
install_magisk_v26_in_boot_partition:active:reboot
install_the_magisk_app
wait_for_access_via_adb:120:kill
enable_disable_abort_on_error:disable
install_essential_scripts
install_essential_apps
install_essential_magisk_modules
enable_root_access_for_apps:reboot
execute_script_on_the_phone:ignorerc
"
To distinguish between the apk files for Magisk v25 and Magisk v26 two new variables must be defined in the config file prepare_phone.conf for the tasks in prepare_phone.include:
Bash:
MAGISK_v26_APK_FILE="/data/backup/Android/EssentialApps/Magisk-v26.1.apk"
MAGISK_v25_APK_FILE="/data/backup/Android/EssentialApps_Backup/Magisk-v25.2.apk"
see here for the log of an update of Magisk v25 to Magisk v26 via script using the command
Bash:
./prepare_phone.sh install_magisk_v26_in_boot_partition
see here for the log of an automated installation using the tasks in prepare_phone.include with the installation of Magisk v26 using the command
Bash:
./prepare_phone.sh all
Testenvironments for the installation of Magisk v26 via script
an ASUS Zenfone 8 running
OmniROM 13 with MicroG and Magisk v26.1
OmniROM 12 with MicroG and Magisk v26.1
ASUS Android 13 and Magisk v26.1
ASUS Android 12 and Magisk v26.1
LineageOS 19 and Magisk v26.1
All tests were done using TWRP 3.7.0.12