工欲善其事,必先利其器。—— 《论语 卫灵公》
推荐测试设备:Pixel、Nexus、Xiaomi、OnePlus
推荐设备系统:AOSP [1]、LineageOS、Havoc-OS
推荐调试工具:JADX [2]、JEB [3]、Frida [4]
①. 环境准备
0x01. 硬件设备
目前手上用的是Xiaomi redmi系列的Note 7,是之前用淘汰下来的。虽然外屏有不少裂痕偶尔触摸失灵,但还不影响正常使用。建议大家有旧手机很直接用旧的就好,当然没有实体机用模拟器也行。不要花冤枉钱~
0x02. 解锁BL锁
已手上的xiaomi为例,直接在MIUI官网下载【解锁工具包】。
0x03. 刷recovery
这里还是强烈推荐橙狐recovery,橙狐recovery内置magisk管理模块,当后面magisk模块导致手机故障时,直接通过橙狐recovery关闭magisk模块即可,避免无意义的重复刷机。
第三方recovery | 下载地址 |
---|---|
TWRP | https://twrp.me/ |
SHRP | https://skyhawkrecovery.github.io/ |
橙狐 | https://orangefox.tech/ |
PitchBlack | https://pitchblackrecovery.com/ |
0x04. 操作记录
#查看本地连接是否正常
adb devices
#进入bootloader模式
adb reboot bootloader
#查询设备是否正常连接
fastboot devices -l
#刷入TWRP.img
fastboot flash recovery recovery-TWRP.img
0x05. 刷入magisk
magisk官方的几个分支:
> [测试版] Beta
> [金丝雀] Canary
> [调试版] Debug
> [稳定版] Stable
第三方维护magisk版本
> [阿尔法] Alpha
> [德尔塔] Delta
> [简易版] Lite
【❗️注意第三方维护版本,无稳定性保障。确认使用前,做好随时做好数据恢复的心理准备。】
如果追求稳定推荐使用Stable版
如果想要更隐蔽的运行magisk,建议尝试Canary。
如果你很有冒险精神,不妨试一试第三方维护的版本。
稳定版
官方其他版本
#查看本地连接是否正常
adb devices
#进入recovery模式
adb reboot recovery
#adb sideload刷入magisk
adb sideload magisk.apk
#完成后重启,安装apk
adb install magisk.apk
0x06. 刷入LSPosed
自己用的是Zygisk,magisk里面开启即可。主要图个方便,不用再安装Riru。
LSPosed下载
直接开启magisk的Zygisk,选着压缩包刷入即可。
②. 常见问题
0x01. 连接wifi提示网络访问受限
Google从 Android 5.0 开始就引入了「Captive Portal」机制,主要用来检测 WiFI 网络认证是否正常,默认检测访问的是谷歌服务器(http://clients3.google.com/generate_204)。众所周知国内在未知能力影响下,一直无法正常访问Google相关页面。这种提示并不影响使用,如果一定要处理。我们也可以通过替换captive portal验证连接实现,解决方案如下
方案一:
#关闭验证机制
adb shell "settings put global captive_portal_mode 0"
方案二:
#删除默认的验证地址
adb shell "settings delete global captive_portal_https_url"
adb shell "settings delete global captive_portal_http_url"
#修改为国内可访问的验证地址
adb shell "settings put global captive_portal_use_https 1"
adb shell "settings put global captive_portal_use_http 1"
adb shell "settings put global captive_portal_https_url https://www.gstatic.com/generate_204"
adb shell "settings put global captive_portal_http_url http://www.gstatic.com/generate_204"
0x02. 时间无法同步
由于Pixel的默认 NTP 服务器 Google 的 time 服务器,受限于特殊原因国内无法访问。可以通过以下命令替换NTP 服务器。
adb shell "settings put global ntp_server pool.ntp.org"
0x03. JEB动态调试
请确保AndroidManifest.xml里添加可调试权限
android:debuggable="true"
或者采用Magisk命令
su
magisk resetprop ro.debuggable 1
stop;start;
③. 软件集
0x01. 电脑软件
> Jeb
> Jadx
> Scrcpy
0x02. 手机软件
> Momo
> Hunter
> SimpleHook、HookTest
> JsHook
> Guise
> 设备信息
> 算法助手
> 异常跟踪、异常示例
> MT管理器
> 开发助手
> 合规检查测试DEMO
> BlackDex