This repository has been archived on 2024-08-02. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
2021-12-07 11:09:16 +01:00
Magisk-v23.0 A few fixes 2021-12-07 11:09:16 +01:00
magisk_boot_flasher.py A few fixes 2021-12-07 11:09:16 +01:00
README.md Edit README 2021-11-26 16:21:25 +01:00

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.

⚠️ This has only been tested on a FP3 device, at the time of writing with LineageOS for microG 18.1 (November 18, 2021 build) Magisk v23.0 ⚠️

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.

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 v23.0 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/armeabi-v7a/libmagisk32.so -> magisk32
  • lib/armeabi-v7a/libmagisk64.so -> magisk64
  • lib/armeabi-v7a/libmagiskinit.so -> magiskinit
  • lib/x86/libmagiskboot.so -> magiskboot
  • lib/armeabi-v7a/libmagiskinit.so -> magiskinit

You can delete all the rest.

In util_functions.sh:

  • Change function ui_print() to contain only 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 :)