Magisk 笔记

Posted by API Caller on November 6, 2019

介绍

Magisk Manager 详解

  • SafetyNet

Magisk Manager 检测是否通过了谷歌服务中的 SafetyNet 安全性测试。想要通过 SafetyNet 测试,最好使用原厂系统,或者是值得信赖的第三方 ROM 正式版(也就是 Official Builds),以减少不必要的麻烦。

  • basic integrity

如果是 basic integrity 这一项没有通过认证,那说明你遇到了大麻烦:试着开启「Magisk 核心功能模式」或者卸载所有模块,如果还是没有通过,那么你可能需要换一个系统或者第三方 ROM 了。

  • ctsProfile

如果是 ctsProfile 这一项没有通过,那说明你的 ROM 没有通过其兼容性测试,一些 beta 版本或者国内厂商的 ROM 可能出现这种问题。这时我们下载使用 MagiskHide Props Config 这个模块往往能够解决问题。

模块编写

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[mfe] $ tree
.
├── README.md
├── base
│   ├── META-INF
│   │   └── com
│   │       └── google
│   │           └── android
│   │               ├── update-binary
│   │               └── updater-script
│   ├── common
│   │   ├── post-fs-data.sh
│   │   ├── service.sh
│   │   └── system.prop
│   ├── install.sh
│   └── system
│       ├── placeholder
│       └── xbin
│           └── mfe
├── build.py
└── requirements.txt

service.sh 中使用 /sdcard

service.sh 中第一时间是无法使用 /sdcard 的.

1
2
3
while [ "$(getprop sys.boot_completed)" != "1" ]; do
    sleep 1
done

或者

1
2
3
while [ ! -d "/storage/emulated/0" ]; do
  sleep 1
done

使用 busybox

Magisk 自带 BusyBox, 默认路径为 /data/adb/magisk/busybox.

为了一致性, 例如 psAndroid Oreo 上的差异, 可以用 /data/adb/magisk/busybox ps -A 代替.