关于打造安卓测试机的方法以及常见问题的解决方式

news2024/9/30 13:22:50

摘要:

本文主要讲解如何打造安卓测试机,并刷机google原生系统、部署Magisk对测试机进行root的常用方式;并对一些常见问题进行思路解答。本文适合新手学习,大佬请绕过

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

Nexus 5x 测试机一部(闲鱼100-150即可购买一部)
镜像下载的网站: https://developers.google.cn/android/images?hl=zh-cn#angler
TWRP Recoery刷机镜像站: 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
驱动 :https://developer.android.com/studio/run/win-usb?hl=zh-cn

首先说一下,为什么使用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功能,但是确实是存在一定的缺陷,所以大家在测试的时候都需要进行避坑

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的上一个文件夹)
在这里插入图片描述

刷机镜像选择

这里推荐大家下载安卓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

Magisk的部署

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

adb install magisk.apk

安装成功后,会提示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失效了

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.img

等所有的都显示ok之后,按手机音量下键,选择Recover mode,然后按电源键即可进入recovery修复模式
在这里插入图片描述
等待手机重新启动后,即可进入twrp功能,这个时候计算机会自动连接手机文件夹,大家可以将magisk apk安装包复制到手机能访问到的文件夹,然后利用twrp的 install功能安装app,他会自动刷root,这样成功后重启的手机即可正常开机,不会卡在开机页面进不去了

系统根目录证书的导入

上面提到,安卓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 /sdcard/
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目录
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1072876.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【多线程进阶】线程安全的集合类

文章目录 前言1. 多线程环境使用 ArrayList2. 多线程环境使用队列3. 多线程环境使用哈希表3.1 HashTable3.2 ConcurrentHashMap 总结 前言 本文主要讲解 Java 线程安全的集合类, 在之前学习过的集合类中, 只有 Vector, Stack, HashTable, 是线程安全的, 因为在他们的关键方法中…

高端品牌如何利用软文抓住顾客的心?

如今高端品市场价值巨大,但之前由于“口罩”影响和冲击,高端品牌的线上销售份额占比较少,同时得益于互联网和新媒体技术的发展,高端品的利润来源大多数是线上推广进行销售,而软文就是高端品常用的推广方式,…

鉴源论坛 · 观模丨基于软件性质的自动化测试技术

作者 | 熊一衡 华东师范大学软件工程学院博士 苏亭 华东师范大学软件工程学院教授 版块 | 鉴源论坛 观模 社群 | 添加微信号“TICPShanghai”加入“上海控安51fusa安全社区” 在软件开发的生命周期中,测试是至关重要的一环。为了确保软件产品的质量,开…

MOM与MES管理系统有哪些本质上的区别

随着企业业务的不断发展,许多制造企业开始面临车间管理失控、生产不透明等问题。这时候,很多企业选择上线MES生产管理系统来提高生产管理水平。然而,随着企业业务的不断拓展,MES系统也逐渐暴露出其局限性。于是,MOM平台…

详解CAN通信的标识符掩码和标识符列表两种过滤机制

CAN 通信的应用非常广泛,本文不涉及CAN通信的基础配置,重点分析一下STM32和GD32的CAN通信两种ID过滤方式。 首先,不管是STM32还是GD32,实现CAN通信ID过滤的机制和原理一定是一样的,只是用到的寄存器有差别。 1. ID过…

TensorFlow入门(十四、数据读取机制(1))

TensorFlow的数据读取方式 TensorFlow的数据读取方式共有三种,分别是: ①预加载数据(Preloaded data) 预加载数据的方式,其实就是静态图(Graph)的模式。即将数据直接内嵌到Graph中,再把Graph传入Session中运行。 示例代码如下: import tensorflow.compat.v1 as tf tf.disabl…

超好用的IDEA插件推荐!

大家好,Apipost 最新推出IDEA插件V2版本!V2版本主要是Apipost 符合更多用户的需求而推出,支持在插件中获取 token、支持代码完成后在插件中进行 API调试 ,同时也保留了1.0版本部分功能如上传选择目录功能等。 V1版本还会继续保留…

韦东山D1S板子——xfel工具无法烧写bin文件到spi norFlash问题解决

1、早期问题排查 (1)参考博客:《韦东山D1S板子——烧录spi norFlash失败问题排查过程》; (2)早期排查到xfel工具烧写spi norFlash显示成功,但是实际没有烧写进bin文件,怀疑是norFlas…

“揭秘淘宝店铺所有商品接口:一键获取海量热销宝贝信息!“

淘宝店铺所有商品接口可以通过shop id或店铺主链接获取到整店商品,数据包括:商品ID,图片地址,店铺标题,优惠价,价格,销量,宝贝链接等整个店铺的商品。 要使用这个接口,需…

Linux 系统性能瓶颈分析(超详细)

Author:rab 目录 前言一、性能指标1.1 进程1.1.1 进程定义1.1.2 进程状态1.1.3 进程优先级1.1.4 进程与程序间的关系1.1.5 进程与进程间的关系1.1.6 进程与线程的关系 1.2 内存1.2.1 物理内存与虚拟内存1.2.2 页高速缓存与页写回机制1.2.3 Swap Space 1.3 文件系统1…

9个最常用的人体姿态估计模型

“姿态估计?”……“姿态”一词对于不同的人来说可能有不同的含义,但我们不是在讨论阿诺德经典、奥林匹亚或选美表演。 那么,姿态估计到底是什么? 那么,让我们深入探讨这个话题。 推荐:用 NSDT编辑器 快速搭…

【git】git命令行

首先要了解git整个流程的一个分类: workspace:工作区staging area:暂存区/缓存区local repository:版本库或本地仓库remote repository:远程仓库 创建仓库 git clone gitgithub.comxxxxxxxxxxxx//拷贝一份远程仓库 …

笔记34:转置卷积 Transposed Convolution 的由来

注:该文章为视频课的笔记补充 视频课:转置卷积(transposed convolution)_哔哩哔哩_bilibili 更详细的推导在:抽丝剥茧,带你理解转置卷积(反卷积)_逆卷积-CSDN博客 a a a 补充1…

3D模型轻量化工具HOOPS Communicator在3D打印行业中的应用分析

3D打印技术自问世以来,已经在制造业、医疗领域、航空航天和建筑等行业中产生了革命性的影响。随着3D打印技术的不断发展,对3D模型的需求也在不断增加。 随着3D模型复杂性的增加,模型文件的体积也不断膨胀,这对计算资源和数据传输提…

当zk某个节点坏掉如何修复

2.1 当zk某个节点坏掉如何修复 当发生zk数据文件丢失(误删或者磁盘损坏节点损坏都可能出现)时,cdh会出现如下告警

CoreData + CloudKit 在初始化 Schema 时报错 A Core Data error occurred 的解决

问题现象 如果希望为 CoreData 支持的 App 增加云数据备份和同步功能,那么 CloudKit 是绝佳的选择。CloudKit 会帮我们默默处理好一切,我们基本不用为升级而操心。 不过,有时在用本地 CoreData NSManagedObjectModel 初始化 iCloud 中的 Schema 时会发生如下错误: Error …

产品工程师工作的职责十篇

一、岗位职责的作用意义 1.可以最大限度地实现劳动用工的科学配置; 2.有效地防止因职务重叠而发生的工作扯皮现象; 3.提高内部竞争活力,更好地发现和使用人才; 4.组织考核的依据; 5.提高工作效率和工作质量; 6.规范操作行为; 7.减少违章行为和违章事故的发生…

菜单子节点的写法

菜单子节点的写法 1.测试数据2.实现代码3.获取父ID层级 1.测试数据 1.表结构SQL CREATE TABLE test (id int DEFAULT NULL,u_id int DEFAULT NULL,p_u_id int DEFAULT NULL ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_general_ci;2.数据SQL INSERT INTO test (i…

解决maven骨架加载慢问题(亲测解决)

1、下载archetype-catalog.xml 网站 : https://repo.maven.apache.org/maven2/ 2、放在这个文件夹下面 3、setting–>build–>Runner : -DarchetypeCataloglocal

访问Apache Tomcat的manager页面

配置访问Tomcat manager页面的用户名、密码、角色 Tomcat安装完成后&#xff0c;包含了一个管理应用&#xff0c;默认安装在 <Tomcat安装目录>/webapps/manager 例如&#xff1a; 要使用管理页面的功能&#xff0c;需要在conf/tomcat-users.xml文件中配置用户、密码及…