如何打造安卓测试机

编程语言及工具

105人已加入

描述

摘要:

本文主要讲解如何打造安卓测试机,并刷机google原生系统、部署Magisk对测试机进行root的常用方式;

并对一些常见问题进行思路解答。

本文适合新手学习,大佬请绕过

本次实验使用的设备及环境如下:

Nexus 5x 测试机一部(闲鱼100-150即可购买一部)

镜像下载的网站

https://developers.google.cn/android/images?hl=zh-cn#anglerTWRPRecoery https://developers.google.cn/android/images?hl=zh-cn#angler%20TWRP%20Recoery

刷机镜像站

https://twrp.me/

Magisk下载

https://github.com/topjohnwu/Magisk/releases

Lsposed下载

https://github.com/LSPosed/LSPosed/releases

platform-tools工具下载

https://dl.google.com/android/repository/platform-tools_r34.0.4-windows.zip

首先说一下,为什么使用Nexus的设备,一个是成本低,一个是更适合做测试机,解BL锁不需要太麻烦,同时支持的各种原生镜像的种类也比较多,刷机的方法也比较成熟

现在适合做测试机的设备其实很多,除了最优选的Nexus、Pixel外,现在的一加、小米等骁龙处理器的设备都可以做测试机,只不过渠道限制的比较多

而由于安卓7.0以上和以下,信任证书的问题,所以会有一些其他的操作,包括Xposed框架和Lsposed框架的选择、信任证书的安装方式、甚至是安装不同版本的Magisk

这里面提到了Magisk 和 Lsposed;Lsposed框架是现在比较新的框架了,但是他似乎只支持安卓7.0以上的版本;而Magisk 并没有这个限制,但是低于26.0的Magisk 版本会有很多好的插件用不了,比如说Shamiko 插件,更适合躲避root检测,但是低于26.0的Magisk 是用不了的,同时26.0的Magisk 并不适合Recoery 强刷,虽然刷完了不对镜像进行修复也可以使用部分root功能,但是确实是存在一定的缺陷,所以大家在测试的时候都需要进行避坑

0X01 - Bootloader 刷模式

首先第一步是如何进入Bootloader模式:

此处以Nexus5x为例,大致有两种方式

方式一:

手机能开机,打开开发者模式,信任计算机后,利用ADB功能进入bootloader;adb工具大家请根据platform-tools 工具下载即可,此处不演示添加环境变量的步骤,大家可以选择添加,也可以选择不添加

adb devices

安卓

出现这种情况不要慌,只需要信任计算机即可

安卓

安卓

执行该命令是看看有没有adb可连接的设备,如果后面显示的是device那么就可以了,如果是offline,那么请执行adb kill-server或重启计算机、手机;或使用方法二进入bootloader

adb reboot bootloader

安卓

安卓

想要刷机,首先第一步是需要确认手机的BL锁是解锁的状态,由于不同的手机厂商对手机解锁的方式不一样,所以这里仅仅是展示Nexus 5x解锁的样子,如果不是这个样子,那么请执行

fastboot oem unlock

方式二:
按住手机电源键 + 音量下键,直至出现bootloader页面松手即可进入bootloader模式

接下来是第一个坑,进入到bootloader模式后,fastboot devices识别不到设备,这个时候需要大家手动更新计算机的驱动

https://developer.android.com/studio/run/win-usb?hl=zh-cn)

电脑按win+x选择设备管理器,右键选择更新程序软件,在弹出的对话框中选择浏览计算机以查找驱动程序的软件,选择浏览,然后选中下载的驱动的文件夹(不用选的很具体,电脑会自动搜索安装,建议选arm、x86的上一个文件夹)

安卓

0x02 - 刷机镜像选择

这里推荐大家下载安卓8.1的OPM1.171019.011镜像包

安卓

安卓

大家可以看到,笔者将第二个压缩文件里的东西也给解压出来了,一会这是第二个坑
常规来讲,这个时候,大家执行

fastboot devices

安卓

这个时候,只需要在解压目录下,执行flash-all.bat ,而后等待刷机结束就可以了

安卓

这里的第二个坑,就是有的环境会报错,bat脚本会无法执行里面的fastboot -w update image-bullhead-opm1.171019.011.zip 命令,以至于系统找不到boot.img、system.img等包,所以需要我们手工的更改一下脚本

安卓

如果大家遇到了特殊情况,只需要把注释的内容覆盖就可以了,记得将image-bullhead-opm1.171019.011.zip文件解压到当前目录

fastboot flash android-info android-info.txt fastboot flash boot boot.img fastboot flash system system.img fastboot flash recovery recovery.img fastboot flash vendor vendor.img

0x03 - Magisk的部署

此时手机是可以正常开机的,大家记得打开开发者模式,而后重新信任计算机后即可使用adb进行操作,大家需要自行下载magisk的apk安装包进行手工安装

adb install magisk.apk

安装成功后,会提示success,这个时候手机里会有magisk的图标,大家打开magisk软件,因为笔者没有留图,所以大家凑合看一下
安装成功后,会提示success,这个时候手机里会有magisk的图标,大家打开magisk软件,因为笔者没有留图,所以大家凑合看一下

安卓

上图是root成功的图,正常的话zygisk是否的,大家需要点击安装按钮,取消所有的选项,然后选择并修补一个文件   

安卓

修补的文件,其实就是镜像包里的boot.img文件,大家需要将这个文件push到安卓手机能访问到的目录,然后选中,点击修复,待magisk修复成功后会在日志内提示文件的位置,大家记住文件在什么地方,导出修复好的img包

adb pull /sdcard/Download/magisk_patched-24000_GXe4N.img

安卓

adb reboot bootloader fastboot flash boot magisk_patched-24000_GXe4N.img fastboot reboot

安卓

这个时候工作并没有完成,当手机重启后,大家发现,超级用户功能可以使用,并且出现了卸载magisk功能的时候,这个时候说明magisk的root成功了

此时点击首页右上角设置按钮

安卓

下滑至Magisk模块,划开Zygisk功能并重启手机,才算是真正的结束配置

安卓

这个时候第三个坑来了,很多手机都在这个时候起不来了,手机变砖头了,卡在google开机页面怎么也进不去系统,这个时候怎么办?

按住手机电源键+音量下键,直至重新进入到bootloader页面,这个时候大家不需要重新点击flash-all.bat 进行系统重装,仅仅需要执行以下命令即可修复

fastboot flash boot boot.img


需要注意的是,boot.img就是你放进手机里修复镜像用的东西!这个时候不出意外都可以开机了,但是尴尬的就是root失效了

0x04 - TWRP进行Recovery强刷root

TWRP大家最上面的地址,而后选择nexus 5x机型,下载最新的twrp-3.7.0_9-0-bullhead.img 即可
 这个时候不要重启手机,让手机保持在bootloader页面,输入以下命令

fastboot flash recovery twrp-3.7.0_9-0-bullhead.im

等所有的都显示ok之后,按手机音量下键,选择Recover mode,然后按电源键即可进入recovery修复模式

安卓

等待手机重新启动后,即可进入twrp功能,这个时候计算机会自动连接手机文件夹,大家可以将magisk apk安装包复制到手机能访问到的文件夹,然后利用twrp的 install功能安装app,他会自动刷root,这样成功后重启的手机即可正常开机,不会卡在开机页面进不去了

0x05 - 系统根目录证书的导入

上面提到,安卓7.0以上的系统默认只进行手机根目录的证书,所以大家需要将burp的证书导到系统根目录,但是这个时候的根目录是只读模式,需要我们重新挂载system目录才行

附上burp证书修改的方式

openssl x509 -inform DER -in burp.der -out burp.pem openssl x509 -inform PEM -subject_hash_old -in burp.pem openssl x509 -inform DER -in burp.der -out 9a5ba575.0

安卓

常规操作是直接将证书导入到手机里

adb push 9a5ba575.0 /system/etc/security/cacerts/9a5ba575.0

但是竟然说有坑,这里是第四个坑

安卓

网上几乎所有的解决方式都是:

adb root adb remount adb disable-verity adb root adb remount adb push 9a5ba575.0 /system/etc/security/cacerts/9a5ba575.0

很不好意思,adb root其实在这个系统里是成不了的,这里就是第5个坑

安卓


而几乎网上所有的解决方式都是,下载超级adbd工具,给上root权限,下载最新版的adb工具,但是很不幸的是,实际上在安卓7以上这个方法就不灵了,这就是第6个坑

不要慌,这个时候依然可以解决,而这里依然有两个解决方案,不推荐直接adb shell ; su ; chmod 777的方式解决问题,这么玩会把手机再次变砖头,也不要chown 更改所属
执行

adb push 9a5ba575.0 adb shell "su -c 'mount -o remount,rw /system'

安卓

或者

adb push 9a5ba575.0 /sdcard/ adb shell su mount -o rw,remount -t auto /system cp /sdcard/9a5ba575.0 /system/etc/security/cacerts

这个时候就解决了证书的问题,大家也可以选择安装MT管理器APK,然后给这个工具root权限,就可以直接在工具里把证书导入到system目录

安卓

安卓

编辑:黄飞

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分