**Decprecated. Now using this method: https://topjohnwu.github.io/Magisk/ota.html** # Overview This scripts aims in simplifing patching and installing Magisk after a LineageOS **for microG** update. It has been made to run on Linux x86 or x64 and patch a boot image for an ARM device. It detects LineageOS **for microG** version via adb, download the ROM, extracts `payload.bin` and dumps `boot.img`, patches it with Magisk, and flashes it. :warning: **This has only been tested on a FP3 device, at the time of writing with LineageOS for microG 19.1 (August 23, 2022 build) Magisk v25.2** :warning: ## Run on an other device Before to run this script for an other device, please make sure you understand what you run and every step of the script. **I won't be responsible if anything goes wrong.** The script is designed to: * run the script `boot_patch.sh boot.img` with KEEPVERITY and KEEPFORCEENCRYPT to true * install Magisk by patching the **boot image** and **not the recovery image**. * run to flash the boot image in **boot_a** or **boot_b** partition (the FP3 way) and **not boot partition** If you fit the conditions above, you have to make sure the patch `KEEPVERITY=true KEEPFORCEENCRYPT=true sh boot_patch.sh` outputs the same boot image than the Magisk Manager app: * patch boot via Magisk Manager app * run `boot_patch.sh boot.img` manually * compare both files `magisk_patched-*.img` and `new-boot.img` with diff or by comparing hashes. If **and only if** both output files are the same and you meet all the conditions, you can try the python script. # Prerequisites ## In PATH You need to have on your system (in your PATH): * adb * fastboot * payload-dumper-go * python (3) * dos2unix ## USB debugging You need to have USB debugging Enabled and configured. Check your devices appears when running `adb devices` with device connected via USB. ## Using Replace the `device` variable by your device code, as [listed here](https://download.lineage.microg.org/). Plug your phone via USB and make sure adb is properly set up: your device should appear when running `adb devices`. Run `python magisk_boot_flasher.py`. # Run patch boot locally That's how we can run Magisk's `boot_patch.sh` on Linux x86 or x64 and patch a boot image for an ARM device > Tested with Magisk v25.2 with FP3 * Get Magisk `.apk` * Extract it Keep in the same folder: * `assets/boot_patch.sh` -> `boot_patch.sh` * `assets/util_functions.sh` -> `util_functions.sh` * `lib/x86_64/libmagiskboot.so` -> `magiskboot` * `lib/armeabi-v7a/libmagisk32.so` -> `magisk32` * `lib/arm64-v8a/libmagisk64.so` -> `magisk64` * `lib/arm64-v8a/libmagiskinit.so` -> `magiskinit` You can delete all the rest. In util_functions.sh: * Change function `ui_print()` to only contain `echo "$1"` * Change every `getprop` command, to `adb shell getprop`, to go run it on device rather than locally. You can now run: `sh boot_patch.sh boot.img` The outpout file `new-boot.img` has the exact same sha256 hash as the `magisk_patched-*.img`, so we can consider it works :)