第一步:刷入三方recovery:twrp
可参考:https://www.xda-developers.com/how-to-install-twrp/
首先验证自己的设备是否是A/B分区,使用命令adb shell getprop ro.build.ab_update
验证,如果是a/b分区则返回true,只有a分区返回空白行
-
如果是a分区:
adb reboot bootloader fastboot flash recovery twrp-xx.img fastboot reboot
注意 三星设备无法使用fastboot,只能使用odin图形化操作刷入。
部分设备在首次启动期间会自动替换掉我们的recovery,因此在启动时需要通过组合键(如电源键 + 音量上键)启动。 -
如果是a/b分区(如一加oneplus设备)步骤如下:
-
adb push twrp-xxx.img /sdcard
(将twrp-xxx.img推送到sd卡方便后续安装) -
adb reboot bootloader
通过adb或者电源组合键进入bootloader模式 -
fastboot boot twrp-xxx.img
临时通过twrp-xxx.img启动进入recovery -
进入twrp recovery界面,在advanced里选择install Recovery Ramdisk,选中之前push到sd卡的img文件,安装成功后选择重启到recovery。
-
第二步:(可选)刷入lineage os
参考小米6:https://wiki.lineageos.org/devices/sagit/install
需要注意的是,lineage os普遍未做国内适配,因此需要处理部分问题:
- wifi探测服务器问题,安卓设备在连接一个wifi后便会请求一个网址并等待返回204状态码,如果返回了204状态码则可证明此wifi网络连通可用,但是由于众所周知的原因,这个网址在国内连接不上,因此屏幕右上角的wifi标志一直带有一个x号并且在wifi范围内不会主动连接,需要设置captive Portal:
adb shell settings put global captive_portal_http_url https://www.google.cn/generate_204 adb shell settings put global captive_portal_https_url https://www.google.cn/generate_204
- 时间获取: 安卓手机默认从一个国际服务器地址上获取当前准确时间,但是这个服务器同样不可用,因此需要自定义ntp服务器:
adb root & adb remount (需要root权限) adb shell setprop persist.sys.timezone Asia/Shanghai (设置时区为东八区北京时间,这个可以在设置内调整) adb shell settings put global ntp_server ntp1.aliyun.com
第三步:刷入magisk
Magisk的下载链接https://github.com/topjohnwu/Magisk/releases 如果用大于21.1版本,后续的Riru需要22.0版本搭配。这里以21.0版本为例。
直接安装magisk.apk时第二和第四模块不可用,解决方法:将apk重命名为zip,卸载app后通过sideload 刷入。以下流程以twrp这个recovery为例:
- 通过
adb push magisk-xxx.zip sdcard/
将magisk.zip拷贝到sdcard。 - 通过
adb reboot recovery
或者电源组合键进入twrp recovery界面 -
选择Install,选中第一步拷贝的magisk.zip后滑动安装:
- 安装完毕选择 Reboot System
Magisk 通过sideload的方式安装时,部分机型安装后无限loop在启动页面,需重新安装并点击wipe选项卡清除Cache/Dalvik分区后重启。
第四步:通过Magisk刷入Xposed框架
Xposed框架从安卓6.0开始不再支持,后续衍生出了EdXposed框架,目前已经支持到了安卓11.
核心模块Riru:https://github.com/RikkaApps/Riru/releases,需要注意的是如果使用的magisk版本大于21.1,Riru最好使用22.0以及以上版本搭配。如果magisk大于21.1而Riru小于22.0部分机型需要手动重启两次
-
EdXposed模块(安卓12可能不可用):https://github.com/ElderDrivers/EdXposed/releases/tag/v0.4.6.4 。可以看到这里有两个版本提供一个YAHFA版一个SandHook版,官方说法是这样的:
YAHFA and SandHook are two variants available – try both and adopt stable variant which is best for your device
在Magisk的插件tab下点击install from disk,首先安装
Riru-xxx.zip
,然后安装YAHFA/SandHook版的EdXposed-xxxx.zip
。安装时根据提示决定是否重启。 LSPosed模块(替代EdXposed):https://github.com/LSPosed/LSPosed, 安装完之后需要一个manager.apk,可以从zip包中提取。
下载EdXposedManager-4.5.7.apk并安装: https://github.com/ElderDrivers/EdXposedManager/releases/tag/v4.5.7.0.0
推荐一个神器DD助手: https://github.com/wuxiaosu/XposedRimetHelper/tags
安装apk后,打开EdXposedManager左上角的菜单键打开插件配置就可以使用了。
其他拓展:开发xposed插件需要的环境 https://github.com/rovo89/XposedInstaller/tags