工欲善其事,必先利其器。—— 《论语 卫灵公》

推荐测试设备: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

④. 参考连接


  1. AOSP,"Android Open Source Project【Android 开放源代码项目】"。 ↩︎

  2. JADX,逆向静态分析工具。 ↩︎

  3. JEB,静态分析和动态调试工具。 ↩︎

  4. Frida,居家旅行杀人放火必备神器。 ↩︎