![安卓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=1739530428-tbd6nD5lFbOiT6b8z7JQCk8Quv0AlJjh-0-4c6476e81c8d564959bcea0c107584b0)
图1-8 进入“关于手机”界面
连续多次点击“版本号”所在View,直到屏幕提示已进入“开发者模式”,如图1-9所示。
在出现页面提示“已处于开发者模式”后返回上一级目录,也就是进入“系统”界面,此时会出现“开发者选项”,点击“开发者选项”,如图1-10所示。
![](https://epubservercos.yuewen.com/73C614/26581446601318906/epubprivate/OEBPS/Images/Figure-P16_9216.jpg?sign=1739530428-I82nMWY2dzqnkuZnZB99KcXLWmIlN4iy-0-aa921b3635405c7bf754309f11404505)
图1-9 打开“开发者模式”
![](https://epubservercos.yuewen.com/73C614/26581446601318906/epubprivate/OEBPS/Images/Figure-P16_9217.jpg?sign=1739530428-q6voSpjE62j3zK4bs0TTwRhCzJjYQozg-0-56ec16f35192f801837f76d2bf95abbd)
图1-10 进入“开发者选项”界面
在进入“开发者选项”界面后,首先打开“USB调试”。在这个选项打开后,使用USB线连接计算机,手机端就会出现“允许USB调试吗?”对话框,如图1-11所示。
![](https://epubservercos.yuewen.com/73C614/26581446601318906/epubprivate/OEBPS/Images/Figure-P16_9219.jpg?sign=1739530428-pJ7EMMkrFUdo0OPRero3LcSd6F9mO6Zs-0-1f21fd54c7a4cf0d003b4e60cfe70628)
图1-11 请求允许USB调试
在同意USB调试之前和之后使用adb devices命令的结果如下:
![](https://epubservercos.yuewen.com/73C614/26581446601318906/epubprivate/OEBPS/Images/Figure-P17_11739.jpg?sign=1739530428-JJQOz9zr3b9DCmJ4j70DAwpzKZ277MGR-0-c4a16a8686941002af4341493f7ff1b6)
再次回到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=1739530428-Q1TZ36IQLFjSVbEtbBFTW3dYuwhsWL7a-0-a8dfa78638b08da12d5c820682ee2f45)
图1-12 请求允许“OEM解锁”
![](https://epubservercos.yuewen.com/73C614/26581446601318906/epubprivate/OEBPS/Images/Figure-P17_9238.jpg?sign=1739530428-gT2S1BTs7mtfS9BVDoWwfukiiIgYXOFN-0-91bc34689a6e5079f57bc7781c260f32)
图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=1739530428-dJ5ADc9kc5I9FduqKi8tqU5z8G1ZrdVi-0-eb3f3ad0584739835baa27f19ed975e7)
![](https://epubservercos.yuewen.com/73C614/26581446601318906/epubprivate/OEBPS/Images/Figure-P18_9246.jpg?sign=1739530428-yHf7VfcmOIuIbbfowdhXtsmH2PH60Du7-0-e46132f55f9b81c5a96367afcbb950f7)
图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=1739530428-G6QxUEKtUPf5l4bpwvo4tcYYadl6XgVQ-0-3962fcf76cc5f1c396c56040a2d88a86)
之后,手机系统便会进入初始化界面,在完成语言、WiFi等相关的设置后,一台“新”的测试机就诞生了。当然,为了方便后续测试,此时还需要再次打开“开发者选项”以获取USB调试许可。
如图1-15所示,在联网之后会发现测试机系统时间与计算机时间不对应,且页面提示“此WLAN网络无法访问互联网”。此时可以通过以下命令解决这个问题,在命令运行结束后,待测试机重新开机后便会发现问题消失。
![](https://epubservercos.yuewen.com/73C614/26581446601318906/epubprivate/OEBPS/Images/Figure-P19.jpg?sign=1739530428-gKSCLnfPHsvrnUj905tBtXD4mfJ5RQnv-0-939866941e5de3c224621751680db1d5)
![](https://epubservercos.yuewen.com/73C614/26581446601318906/epubprivate/OEBPS/Images/Figure-P19_9255.jpg?sign=1739530428-SE2Km2Ru6QxXpCBcsQ4kOVaHHclz5hug-0-d699eae5feb4a0d263ddf5d763939e2e)
图1-15 WLAN网络无法访问互联网及时间不同步问题