刷机前置信息
目的:脱壳
解锁BL
"解锁BL"通常是指解锁Android设备的Bootloader(引导程序)。Bootloader是Android设备的一部分,它是负责启动Android操作系统的程序。当设备的Bootloader被锁定时,用户将无法在设备上安装自定义操作系统或修改系统文件等。因此,解锁Bootloader可以让用户获得更高的设备控制权和更广泛的自定义选项,但也可能导致设备的保修失效或安全风险增加。
要确定Android设备的Bootloader(引导程序)是否已解锁,可以按照以下步骤操作:
- 打开设备并进入“开发者选项”。如果你不知道如何打开开发者选项,请前往设备设置,然后找到“关于手机”或“关于平板电脑”,在其中找到“版本号”并连续点击7次,直到提示你已进入开发者选项。
- 进入开发者选项后,在其中找到“OEM解锁”或“解锁引导程序”等选项,如果它是开启的,那么设备的Bootloader已经解锁。
开始刷机
先升级一下本地的ADB
brew upgrade android-platform-tools --cask
镜像下载地址:https://developers.google.cn/android/images?hl=zh-cn
小版本选
QP1A.190711.020
点击“Link”开始下载,下载好后解压,大概长这个样
再解压image-blueline-qp1a.190711.020.zip
这个压缩包
然后去GitHub下载专门拖壳镜像,主页选择自己合适的版本,我是pixel 3,就选blueline。
这里因为刷主页原来的ROM,magisk一直有问题,所以找了一个偏方
解压新下载的,然后替换覆盖
替换后把image-blueline-qp1a.190711.020
压缩回去
zip -r image-blueline-qp1a.190711.020.zip *
运行
adb reboot bootloader
fastboot flashing unlock
# 按下音量键,选择unlock
adb reboot fastboot
bash flash-all.sh
运行完出现Finished.
就说明OK了,手机也会启动,到这刷机就OK了
安装管理界面
MikManager是一个rom逆向工具的管理界面。该软件用于对接MikRom来实现rom层面的逆向工具。仅仅提供界面化操作管理,并将用户需求保存为json数据,由MikRom解析后进行相应的执行,并导出结果到对应的目录。
wget https://github.com/dqzg12300/MikManager/releases/download/v1.0.1/mikmanager.apk
adb install -t mikmanager.apk
ROM相关教程
参考GitHub
脱壳
- 每次脱壳前记得删除原脱壳保留的
dump
目录 - 正常脱壳,打开APP后会等待60秒才开始脱壳
- 如果脱壳失败,或者脱壳太慢,可以选择白名单进行脱壳,出现
xxx_repair.dex
就说明是脱完了
查找dex技巧:
grep -rl '<包名>' ./
frida hook
pip3 install frida==15.1.11
pip3 install frida-tools==10.0.0
其他
安装Magisk
参考:https://blog.isteed.cc/post/pixel-3-install-magisk/
先安装好Magisk apk
adb install Magisk-v25.2.apk
然后在刚才刷机ROM替换的文件中找到boot.img
传送boot.img
文件到手机上
adb push boot.img /sdcard/Download/
再用Magisk修补这个文件
Magisk Manager
- 安装 - 选择并修补一个文件 - 选择传到手机上的boot.img
文件 - 开始
修补后拷贝到电脑上(如果拷贝到一半总断开,然后连不上设备,大概率是USB电源供电不足的问题,可以采用其他办法如通过ES文件浏览器开一个FTP来下载)
adb pull /sdcard/Download/magisk_patched-25200_5RDnr.img ./
进入fastboot
模式
adb reboot bootloader
运行修补的img
fastboot boot magisk_patched-25200_5RDnr.img
然后会开机,拥有临时的 Magisk ,打开Magisk,选择安装,选择”直接安装“即可。
最后重启就OK了
[!NOTE]
如果提示“检测到不属于Magisk的su文件”可以不管,不影响使用,这是因为ROM中自带了一个su。
本来想解决的,尝试用
adb disable-verity
再挂载也不行,放弃了,等到后期不得不改再想办法吧。
安装系统证书
[!DANGER]
正常情况下,在Android7上通过《移动端各种方式抓包》就可以安装系统证书,但是这个ROM不行,尝试了
disable-verity
、remount
等等都不行,查了好久的资料,最后还是通过magisk
来成功安装证书。
在Magisk官方介绍中,可见magisk模块保存在/data/adb/modules
里
且模块中的system
目录下的内容会递归合并到真实的system
目录下
所以我们直接将证书放到这个目录下就可以了,操作如下:
# 计算证书hash
openssl x509 -inform der -subject_hash_old -in cacert.der -noout
# 重命名为<hash>.0
mv cacert.der 9a5ba575.0
# 在magisk模块目录下创建对应的文件夹
adb root
adb shell "mkdir -p /data/adb/modules/hosts/system/etc/security/cacerts"
# 推送证书到对应的目录
adb push 9a5ba575.0 /data/adb/modules/hosts/system/etc/security/cacerts/
安装后在Magisk的模块应该就能看到了,重启后系统里面也会添加上对应的证书。
安装EdXposed
参考GitHub: https://github.com/ElderDrivers/EdXposed/wiki/%E7%AE%80%E4%BB%8B
注意:Riru要下载v25.4.4的,不然会有BUG,参考issue
adb push riru-v25.4.4-release.zip /sdcard/Download/
adb push EdXposed-v0.5.2.2_4683-master-release.zip /sdcard/Download/
在Magisk管理端中从本地安装模块,先安装Riru,再安装EdXposed,最后重启,重启后在Magisk里面就可以看到刚才安装的模块了。
然后下载EdXposedManager
并安装
adb install EdXposedManager-4.6.2-46200-org.meowcat.edxposed.manager-release.apk
[!TIP]
安装模块后,会提示“此模块因被安装在SD卡中而导致无法加载,请将其移动到内部存储”,此时可通过开启设置中的“跳过状态检查”来忽略检查。(开启后还是会提示,但是模块可以正常使用)
安装LSPosed
推荐安装EdXposed,这个和其二选一即可。
adb push riru-v26.1.7.r530.ab3086ec9f-release.zip /sdcard/Download/
adb push LSPosed-v1.8.6-6712-riru-release.zip /sdcard/Download/
在Magisk管理端中从本地安装模块,先安装Riru,再安装LSPosed,最后重启,重启后在Magisk里面就可以看到刚才安装的模块了。
在消息提示栏中就可以看到LSPosed的管理界面了。
模块推荐
Magisk:
EdXposed | LSPosed:
时间校准的问题
在“设置 -> 系统 -> 时间”处,时区选择中国上海,也就是GMT+08:00
adb shell settings put global ntp_server ntp1.aliyun.com
adb reboot
手机投屏到PC
安装scrcpy进行屏幕镜像,安装过程记得挂代理,不然会很慢很慢,而且会经常失败。
brew install scrcpy
使用
scrcpy -h
scrcpy
可以在电脑上直接操作手机
除了scrcpy,还可以用 QtScrcpy,这个功能提供更多,可以模拟按键、群控啥的,在Mac上体验一点也不好,但一般情况下scrcpy就够用了。