1. 为什么选择Pixel手机做逆向开发?
如果你刚接触安卓逆向,可能会纠结该选哪款设备。我这些年用过各种品牌的测试机,最后发现Google Pixel系列是最省心的选择。原因很简单:官方支持完善、社区资源丰富、解锁限制少。举个例子,去年我帮学员调试某国产机型时,光等厂商开放Bootloader解锁就耗了两周,而Pixel插上数据线就能直接fastboot oem unlock。
Pixel 1代现在二手价格不到300元,虽然只能刷到Android 10,但作为入门练手机完全够用。我自己工作室就备着三台Pixel 3,搭配Magisk和KernelSU能应对90%的逆向场景。不过要注意避开运营商锁机版本,某宝搜索"Pixel 可解BL锁"关键词能找到靠谱卖家。
2. 刷机前的准备工作
2.1 硬件检查清单
先确认你的Pixel手机满足以下条件:
- 电量充足(建议80%以上)
- 已退出Google账号和屏幕锁
- 原装数据线(第三方线可能识别不稳定)
- Windows电脑需安装 Google USB驱动
2.2 软件工具准备
下载这五个必备文件:
- 官方系统镜像(以Pixel 3 Android 13为例):
wget https://dl.google.com/dl/android/aosp/sailfish-qp1a.191005.007.a3-factory-5e170e74.zip - Platform-Tools 最新版
- Magisk-v26.1.apk
- 文本编辑器(推荐VS Code)
- 7-Zip解压工具
实测发现某度网盘下载的镜像可能校验失败,建议直接走Google官方链接。如果下载慢,可以用
aria2c多线程下载。
3. 解锁Bootloader实战步骤
3.1 开启开发者选项
连续点击"设置-关于手机-版本号"7次,然后进入"系统-高级-开发者选项",开启:
- USB调试
- OEM解锁(关键!)
- 充电时不锁定屏幕
连接电脑后,在终端输入:
adb devices看到设备序列号说明驱动正常。如果显示unauthorized,检查手机端是否点击了"允许USB调试"的弹窗。
3.2 彻底解锁Bootloader
- 进入Bootloader模式:
adb reboot bootloader - 执行解锁命令:
手机端用音量键选择"Unlock the bootloader",电源键确认。fastboot flashing unlock
注意:这会清空手机所有数据!建议提前备份。解锁后每次开机都会看到警告页,这是正常现象。
4. 刷入官方系统镜像
解压下载的工厂镜像包,里面这几个文件最关键:
bootloader-sailfish-xxxx.img:底层引导程序radio-sailfish-xxxx.img:基带固件image-sailfish-xxxx.zip:系统镜像
4.1 全自动刷机(推荐新手)
Windows双击flash-all.bat,Mac/Linux执行:
chmod +x flash-all.sh ./flash-all.sh脚本会自动完成所有分区写入,约5-10分钟。如果卡在waiting for device,检查fastboot驱动是否正常。
4.2 手动分步刷机(进阶)
遇到问题时可尝试手动刷入:
fastboot flash bootloader bootloader.img fastboot reboot-bootloader sleep 5 fastboot flash radio radio.img fastboot reboot-bootloader sleep 5 fastboot -w update image.zip5. 获取Root权限的两种方案
5.1 Magisk方案(通用)
- 安装Magisk应用:
adb install Magisk-v26.1.apk - 提取boot.img:
unzip image-sailfish-xxxx.zip boot.img adb push boot.img /sdcard/ - 在Magisk中选择"安装-选择并修补文件",找到boot.img生成
magisk_patched.img - 刷入修补后的镜像:
adb pull /sdcard/Download/magisk_patched.img . fastboot flash boot magisk_patched.img
5.2 KernelSU方案(仅限内核4.14+)
适用于Pixel 4及以上机型:
fastboot flash boot kernelsu-android13-5.10.110.img fastboot reboot安装 KernelSU Manager 即可管理root权限。
6. 刷机后的优化配置
6.1 解决时间同步问题
Root后系统时间可能异常,导致网络连接失败:
adb shell settings put global auto_time 0 adb shell settings put global auto_time_zone 0 adb shell date $(date +%s)6.2 关闭WiFi受限提示
原生系统会检测Google服务器导致WiFi显示×:
adb shell settings put global captive_portal_mode 0 adb shell settings put global captive_portal_https_url https://www.google.cn/generate_2046.3 禁用自动更新
防止系统更新覆盖Root:
adb shell pm disable-user com.google.android.gms/.update.SystemUpdateActivity7. 逆向工具链部署
7.1 Frida环境搭建
- 手机端安装frida-server:
adb push frida-server-16.0.8-android-arm64 /data/local/tmp/ adb shell "chmod 755 /data/local/tmp/frida-server-16.0.8-android-arm64" adb shell "/data/local/tmp/frida-server-16.0.8-android-arm64 &" - PC端测试:
frida-ps -U
7.2 Xposed框架安装
推荐用LSPosed:
- 在Magisk中刷入 LSPosed-Zygisk
- 安装管理器APK
- 模块仓库包含各种逆向神器:JustTrustMe、TrustMeAlready等
8. 常见问题排查指南
8.1 fastboot设备识别失败
症状:fastboot devices无输出 解决方法:
- 检查USB线是否松动
- 重装驱动:
pnputil /add-driver android_winusb.inf /install - 尝试不同USB接口
8.2 Magisk安装后丢失Root
通常是由于boot分区被覆盖:
- 重新进入Bootloader
- 再次刷入magisk_patched.img
- 在Magisk设置中开启"保留强制加密"
8.3 系统无限重启
可能是镜像版本不匹配:
- 重新下载对应型号的工厂镜像
- 执行
fastboot -w清除数据 - 完整刷机流程重试
最后提醒下,刷机有一定风险,建议先用备用机练手。Pixel的工程模式(*#*#8255#*#*)可以查看硬件状态,遇到基带丢失等问题时能快速定位故障。