1. Blog
  2. Golang
  3. kubernetes
  4. Rust
  5. 关于作者

android mgisk 安装

android magisk

Magisk 是一套用于定制开源 Android 系统的软件。最基础的用法为替代 SuperSu 进行 root 和授权管理。

此外,由于 magisk patch 了 boot 镜像,拥有几乎完全定制 android 系统的能力,magisk 有许多社区插件,可以实现许多强大的功能。

这些模块可以在 XDA-msgisk 中寻找。

本文以 oneplus 8T 刷 pixelexperience ROM 并安装 Magisk 为例。

准备

设备:oneplus 8T(kebab),已经解锁 bootloader。如果未解锁 bootloader,请先自行解锁。

PC:

安装刷机包(可选)

如果系统无需更新,可以跳过此步骤。

重启手机,按住 vol+ 键,进入 recovery 模式。选择 sideload 模式。

$ ls
PixelExperience_Plus_kebab-12.1-20220410-0820-OFFICIAL.zip
$ adb sideload PixelExperience_Plus_kebab-12.1-20220410-0820-OFFICIAL.zip

如果 recovery 支持直接安装刷机包,则可以提前将刷机包下载至手机上,并选择直接安装。

完成后重启手机进入系统。

安装 Magisk App

下载 Msgisk 并安装。

根据Magisk/Installation,还需要:

根据上述准备:

提取 boot.img

有 ramdisk 的设备需要提取 boot.img 可以用两种方式:

从 boot 分区提取:

dd if=/dev/block/bootdevice/by-name/boot of=boot.img

从刷机包提取:

从刷机包中提取 boot.img 或 recovery.img,需要使用到 payload dump 工具

$ ls
PixelExperience_Plus_kebab-12.1-20220410-0820-OFFICIAL.zip
#解压 zip 包
$ unzip -d PixelExperience_Plus PixelExperience_Plus_kebab-12.1-20220410-0820-OFFICIAL.zip
Archive:  PixelExperience_Plus_kebab-12.1-20220410-0820-OFFICIAL.zip
signed by SignApk
 extracting: PixelExperience_Plus/META-INF/com/android/metadata
 extracting: PixelExperience_Plus/META-INF/com/android/metadata.pb
 extracting: PixelExperience_Plus/apex_info.pb
 extracting: PixelExperience_Plus/care_map.pb
 extracting: PixelExperience_Plus/payload.bin
 extracting: PixelExperience_Plus/payload_properties.txt
  inflating: PixelExperience_Plus/META-INF/com/android/otacert

$ ls
PixelExperience_Plus
PixelExperience_Plus_kebab-12.1-20220410-0820-OFFICIAL.zip
# 下载 payload-dumper-go
$ wget https://github.com/ssut/payload-dumper-go/releases/download/1.2.0/payload-dumper-go_1.2.0_darwin_arm64.tar.gz
$ tar -zxvf payload-dumper-go_1.2.0_darwin_arm64.tar.gz
x LICENSE
x README.md
x payload-dumper-go
# 解压 boot.img
$ ./payload-dumper-go -p boot -o boot PixelExperience_Plus/payload.bin
payload.bin: PixelExperience_Plus/payload.bin
Payload Version: 2
Payload Manifest Length: 123625
Payload Manifest Signature Length: 267
Found partitions:
boot (101 MB), dtbo (25 MB), odm (1.4 MB), product (1.8 GB), recovery (101 MB), system (991 MB), system_ext (464 MB), vbmeta (4.1 kB), vbmeta_system (4.1 kB), vendor (1.1 GB)
Number of workers: 4
boot (101 MB)  [==========================================================================================================] 100 %
$ ls boot
boot.img

修补 boot.img

修补 boot.img 需要使用到 magisk app 进行

# 通过 adb 发送至 android 设备
$ adb push boot/boot.img /sdcard/Download/boot.img
boot/boot.img: 1 file pushed, 0 skipped. 133.1 MB/s (100663296 bytes in 0.721s)
# 打开 magisk app 选择 “选择并修补一个文件” 选择 Download/boot.img, 选择后 “开始” 修补。
# 修补完成后会在日志中显示修补后的文件名,一般位于 /sdcard/Download/magisk_patchd-[random string].img
# 下载修补后的 boot.img
$ adb pull /sdcard/Download/magisk_patched-24300_f0pFX.img .
/sdcard/Download/magisk_patched-24300_f0pFX.img: 1 file pulled, 0 skipped. 35.2 MB/s (100663296 bytes in 2.726s)
# 使用 fastboot 刷新 boot 分区
$ fastboot flash boot magisk_patched-24300_f0pFX.img
# 禁用vbmeta验证(可选)
$ fastboot flash vbmeta --disable-verity --disable-verification vbmeta.img

重启设备,All Done.