![安卓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=1739442941-RblaQF8ePAfbDKZfelfXoag4IkKlLX9F-0-6b6fc63726623d24a0587de1ee55c8a7)
图1-8 进入“关于手机”界面
连续多次点击“版本号”所在View,直到屏幕提示已进入“开发者模式”,如图1-9所示。
在出现页面提示“已处于开发者模式”后返回上一级目录,也就是进入“系统”界面,此时会出现“开发者选项”,点击“开发者选项”,如图1-10所示。
![](https://epubservercos.yuewen.com/73C614/26581446601318906/epubprivate/OEBPS/Images/Figure-P16_9216.jpg?sign=1739442941-LU49qkPQhpRhUJPRQYj9XrAL3Vgl8Idt-0-fbabdb7942e5f8f8ea9057c7b8b055e2)
图1-9 打开“开发者模式”
![](https://epubservercos.yuewen.com/73C614/26581446601318906/epubprivate/OEBPS/Images/Figure-P16_9217.jpg?sign=1739442941-CCNDI4bUeNbfrI2zxXxWBrRNvdu2dbW7-0-c07609058b78e8528035ead251196252)
图1-10 进入“开发者选项”界面
在进入“开发者选项”界面后,首先打开“USB调试”。在这个选项打开后,使用USB线连接计算机,手机端就会出现“允许USB调试吗?”对话框,如图1-11所示。
![](https://epubservercos.yuewen.com/73C614/26581446601318906/epubprivate/OEBPS/Images/Figure-P16_9219.jpg?sign=1739442941-BcccKSqwGAsIyz9EFgY8h3IvAiA3ojGa-0-7f024e9b6ea55142610d46f85f843f7a)
图1-11 请求允许USB调试
在同意USB调试之前和之后使用adb devices命令的结果如下:
![](https://epubservercos.yuewen.com/73C614/26581446601318906/epubprivate/OEBPS/Images/Figure-P17_11739.jpg?sign=1739442941-EYVkK59EqaxgXnihA0xABX1TIqO5Xd2G-0-efc466d1bcd4b30cf2bb4b8496bc8d17)
再次回到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=1739442941-ChY37zQv3WqPgNwIXKMrjkpAc8XZrAur-0-173b564ac9365695fc65c398f9ba3000)
图1-12 请求允许“OEM解锁”
![](https://epubservercos.yuewen.com/73C614/26581446601318906/epubprivate/OEBPS/Images/Figure-P17_9238.jpg?sign=1739442941-lNh5Iq8nOWe7WjxasU0aBelCYMX5CZRn-0-f7aa628839d05a2283dd47dd81e964d3)
图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=1739442941-Y6MVcBiXrVlLu8WZzYghw4UVgs093yj0-0-ee0aa943135d2d5ae59249af3231821e)
![](https://epubservercos.yuewen.com/73C614/26581446601318906/epubprivate/OEBPS/Images/Figure-P18_9246.jpg?sign=1739442941-z34IxoJL6viQvYiKko9YwnAuU4lY5Vj6-0-7e19e1db24fcfec8a03e0bf2e8c5af21)
图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=1739442941-aJWe2otpjWCaAfQx69iWER4XNuHVmZoa-0-674021d5f9b5977e36ff5010b2438d90)
之后,手机系统便会进入初始化界面,在完成语言、WiFi等相关的设置后,一台“新”的测试机就诞生了。当然,为了方便后续测试,此时还需要再次打开“开发者选项”以获取USB调试许可。
如图1-15所示,在联网之后会发现测试机系统时间与计算机时间不对应,且页面提示“此WLAN网络无法访问互联网”。此时可以通过以下命令解决这个问题,在命令运行结束后,待测试机重新开机后便会发现问题消失。
![](https://epubservercos.yuewen.com/73C614/26581446601318906/epubprivate/OEBPS/Images/Figure-P19.jpg?sign=1739442941-kFcLyN0qBot5teBgofod9oi8KqBnnN3O-0-e943a3605601f40f4f7cd3ade76fd357)
![](https://epubservercos.yuewen.com/73C614/26581446601318906/epubprivate/OEBPS/Images/Figure-P19_9255.jpg?sign=1739442941-as7J2GPDqrOedX9yKAgja4TjaVm8Hyxm-0-1734e12a1acb960e9d3fb21ee7ce1957)
图1-15 WLAN网络无法访问互联网及时间不同步问题