![安卓Frida逆向与协议分析](https://wfqqreader-1252317822.image.myqcloud.com/cover/82/47217082/b_47217082.jpg)
1.3 移动设备环境准备
1.3.1 刷机
在安卓逆向的学习中,提及基础一定不能错过刷机,而在刷机之前,一定要准备一台测试机,这里笔者推荐Google官方的Nexus系列和Pixel系列的测试机。之所以推荐Google原生系统,是因为Google官方不仅提供了镜像,而且在对应的源码网站上能够找到相应镜像的全部源码,在国内Android市场,比如华为、小米等公司实际上都魔改了Android系统,但均未开源,其在测试过程中总会与Android官方源码有所差异,导致出现各种各样的问题,因此笔者更加推荐Google官方推出的手机。笔者在这本书中选择了Nexus 5X,读者如选择其他型号的手机,仅供参考。
在拿到测试机后要完成刷机,首先需要打开手机的“开发者选项”,具体步骤如下:
进入“设置”页面,点击“系统”,然后点击“关于手机”,进入“关于手机”界面,如图1-8所示。
![](https://epubservercos.yuewen.com/73C614/26581446601318906/epubprivate/OEBPS/Images/Figure-P15_12280.jpg?sign=1738888537-GdJvaDKAhhk49feLQynN4P4nOSutQr4q-0-417bca9c1c101472fa076b10cc9fe796)
图1-8 进入“关于手机”界面
连续多次点击“版本号”所在View,直到屏幕提示已进入“开发者模式”,如图1-9所示。
在出现页面提示“已处于开发者模式”后返回上一级目录,也就是进入“系统”界面,此时会出现“开发者选项”,点击“开发者选项”,如图1-10所示。
![](https://epubservercos.yuewen.com/73C614/26581446601318906/epubprivate/OEBPS/Images/Figure-P16_9216.jpg?sign=1738888537-4YYaDOvPjfhLWbwzcUuv7rUkmpiuVNF1-0-4da2ecb0b6ebf53b35d6d2339d951392)
图1-9 打开“开发者模式”
![](https://epubservercos.yuewen.com/73C614/26581446601318906/epubprivate/OEBPS/Images/Figure-P16_9217.jpg?sign=1738888537-MCkz8U2y56kLS1RgYHzVhrXAmX6nNvTE-0-4aa10eaaee6edc6f52759f869cae0ac5)
图1-10 进入“开发者选项”界面
在进入“开发者选项”界面后,首先打开“USB调试”。在这个选项打开后,使用USB线连接计算机,手机端就会出现“允许USB调试吗?”对话框,如图1-11所示。
![](https://epubservercos.yuewen.com/73C614/26581446601318906/epubprivate/OEBPS/Images/Figure-P16_9219.jpg?sign=1738888537-LrknLIMBAPRkr6Jg8KYZvFhcPRbH8ja1-0-72b7460da240257c13f0e39bbb748aab)
图1-11 请求允许USB调试
在同意USB调试之前和之后使用adb devices命令的结果如下:
![](https://epubservercos.yuewen.com/73C614/26581446601318906/epubprivate/OEBPS/Images/Figure-P17_11739.jpg?sign=1738888537-Ema1hdEl77XFIrIfupL1eXhnAz1Rl3fT-0-2cf0de25d6a5200cdae58bf1cb4a2878)
再次回到Android测试机上,此时还有一个“OEM解锁”选项需要允许,如图1-12所示。这个选项决定了后续能否完成刷机,也就是刷机中常听到的Bootloader锁。
此时,在计算机的终端上执行命令adb reboot bootloader或者将手机关机后同时按住手机电源键与音量减键,进入Bootloader界面。OEM未解锁之前的Bootloader界面,如图1-13所示。
![](https://epubservercos.yuewen.com/73C614/26581446601318906/epubprivate/OEBPS/Images/Figure-P17_9237.jpg?sign=1738888537-wLuYKYmOQ0VMI2i8CCuOzdGSe9wBXnlg-0-97e5c7a0dcdc773706e5f2b7773efc75)
图1-12 请求允许“OEM解锁”
![](https://epubservercos.yuewen.com/73C614/26581446601318906/epubprivate/OEBPS/Images/Figure-P17_9238.jpg?sign=1738888537-gS1KJcd0CuSvQdPAA5Xq3yKU3xrlyywt-0-de92016f7e4253a13b1cde69746dbe3a)
图1-13 OEM未解锁之前的Bootloader界面
保持手机使用USB线连接上计算机,再次在计算机终端中运行fastboot oem unlock命令,然后测试机就会弹出确认界面,此时按音量减键直至选中YES选项后按电源键,至此,OEM锁就成功解锁了。如图1-14所示为解锁后的Bootloader界面。
![](https://epubservercos.yuewen.com/73C614/26581446601318906/epubprivate/OEBPS/Images/Figure-P17-1.jpg?sign=1738888537-zroRBmsxnUWKeGqAY4osBufTwvplEJoK-0-b27f84d75c79d2b0f1faae41ff22dc5f)
![](https://epubservercos.yuewen.com/73C614/26581446601318906/epubprivate/OEBPS/Images/Figure-P18_9246.jpg?sign=1738888537-nAOlHr4YkHt9z8PZkGoeOmqeDo3IbSLJ-0-9da973697e583f8f029105f6f993e668)
图1-14 OEM已解锁的Bootloader界面
在OEM解锁后,一个完整的可供刷机的手机就准备完成了,此时如果要刷入新的特定系统,就要准备刷机包。这里的刷机包其实也可以叫作官方镜像包,Google官方提供了一个官方镜像的站点(网址:https://developers.google.com/android/images),笔者这里下载Nexus 5X的对应刷机包,由于Android 8.1.0_r1这个版本的系统支持的设备比较多,因此在这里笔者选择这个版本的系统进行演示。Android 8.1.0_r1对应代号为OPM1.171019.011,版本与代号对应关系的网址为https://source.android.com/setup/start/build-numbers#source-code-tags-and-builds,在找到代号后,再次回到官方镜像站下载对应版本的镜像。
在下载完毕后,解压刷机包并进入刷机包目录,同时手机进入Bootloader界面并使用USB线连接上主机,然后直接运行flash.sh文件。对应步骤如下:
![](https://epubservercos.yuewen.com/73C614/26581446601318906/epubprivate/OEBPS/Images/Figure-P18_11745.jpg?sign=1738888537-AMg7TffWV1EwDXUiglOwEJUYnKQ0q5p7-0-8a848a80fa3392853aa612bfc8cd9744)
之后,手机系统便会进入初始化界面,在完成语言、WiFi等相关的设置后,一台“新”的测试机就诞生了。当然,为了方便后续测试,此时还需要再次打开“开发者选项”以获取USB调试许可。
如图1-15所示,在联网之后会发现测试机系统时间与计算机时间不对应,且页面提示“此WLAN网络无法访问互联网”。此时可以通过以下命令解决这个问题,在命令运行结束后,待测试机重新开机后便会发现问题消失。
![](https://epubservercos.yuewen.com/73C614/26581446601318906/epubprivate/OEBPS/Images/Figure-P19.jpg?sign=1738888537-H5D0cNDqcNCcbuaCqeiIjt6fBvInXtRU-0-8fa4fe9ca600b0d86f12e01e55fa1b9a)
![](https://epubservercos.yuewen.com/73C614/26581446601318906/epubprivate/OEBPS/Images/Figure-P19_9255.jpg?sign=1738888537-xyYoLGKzrGDBCmbmiCcl27JwYAWQtfN6-0-ab61146e6d2245eb5e1c76a4aa54fba4)
图1-15 WLAN网络无法访问互联网及时间不同步问题