Android 刷机
Android 刷机TWRP 使用adb sideload 线刷ROM的方法刷入TWRP异常处理线刷流程fastboot 刷入官方包刷机流程问题安装完成后无法获取root权限安装magisk并root网络问题wifi 无法使用安装charler 证书代理证书问题关于权限问题的解决抓包异常排查Android投屏神器前提概念线刷 使用USB线连接PC进行刷机卡刷使用手机自身的内存、内置SD自带磁盘进行刷机。TWRP 使用adb sideload 线刷ROM的方法前提刷机之前需要安装的 TWRP 这个神器工具刷入TWRP教程ROM 与支持的设备Nexus 和 Pixel 设备的完整 OTA 映像刷入TWRP下载对应的TWRP解锁手机fastboot 刷入下载对应的TWRP对应的版本通过google rom判断在google 搜索twrp-sailfish刷入流程1.进入bootloader在控制台下进入已下载TWRP刷机包的目录键入命令adb reboot bootloader也可在开机时同时按住电源键音量减进入bootloader (不同的手机进入方式稍微有所差别)进入fastboot模式。或者通过组合键启动进入快速启动模式关闭设备电源按住 电源开关 音量直到屏幕上出现“ FASTBOOT”字样然后松开。验证fastboot devices确认是否成功进入fastboot模式确认fastboot 可以找到设备。 如果找不到设备解决找到设备找不到设备的原因驱动太旧 - 更新驱动没有设置环境变量2.输入以下指令fastboot devices -l若出来一串序列号说明安卓设备已连接3,解锁bootloader如果你的设备已经锁定bootloader首先需要解锁才可刷机某些厂商还需要申请解锁码才可以。2015和以后的设备:fastboot flashing unlock2014以前的设备:fastboot oem unlock4.刷入TWRPfastboot flash recovery twrp-3.0.2-0-hammerhead.img或在某些设备上可能需要以下命令fastboot boot twrp-x.x.x-x-polaris.img注意 boot 分为a 和b 有些时候我们可能需要a 和 b 都刷入boot.imgfastboot [boot_a|boot_b] twrp-x.x.x-x-polaris.img至此TWRP安装成功重启后敲入以下命令进入recovery看TWRP 的强大风采吧fastboot oem reboot-recovery或fastboot reboot-recovery我更倾向fastboot flash recovery xxxx.img这样可以立刻进入recovery 环境即可看到这个界面, 如果重启没有进入 recovery 环境 可以执行adb reboot recovery异常处理有些时候可能操作失误导致出现 机器人倒地_进入recovery方式 机器人倒地 并有感叹号解决重新刷入 TWRP先清理环境fastboot format userdatafastboot erase cachefastboot flash recovery twrp-3.0.2-0-hammerhead.imgfastboot flash twrp-3.0.2-0-hammerhead.img线刷流程第一步在计算机上打开命令提示符在Windows上或终端在Linux或macOS上窗口然后键入# 进入recovery 环境adbrebootrecovery# 退出recovery 环境adbrebootbootloader** 如果你刷入了 TWRP 那么你会看到以下界面**操作流程 按红色图框依次进行 英文版的相同的位置操作设备操作完成。 进入PC端操作启动CMD使用ADB执行adb sideload G:\fastboot\e-0.7-o-2019111430687-dev-polaris.zip注意 e-0.7-o-2019111430687-dev-polaris.zip 为你想刷入的 ROM当出现Total即刷入完成手机中没有fails 则成功然后拔掉数据线 操作手机按提示重启即可进入 只要ROM没问题 一般情况都可以正常进入系统。fastboot 刷入官方包这里使用的手机是 Google Nexus 6P手机 系统版本是6.0.1目标升级了8.0版本刷机流程流程解bootloader锁下载文首的 镜像资源 注意 如果没有看到image那么拉到页面末尾点击同意运行资源中的脚本flash-all.bat升级安卓系统安装完后手机点击电源键让手机正常启动解bootloader锁手机开启开发者模式在开发者选项里打开OEM打开 USB调试电脑上运行adb reboot bootloader进入fastboot模式电脑运行命令fastboot flashing unlock解oem锁控制音量键选择YES按电源键确认YES等待手机解锁手机重启后解锁成功。安装解压镜像运行flash-all.bat等待安装如报异常 waiting for any device , 是USB驱动问题导致需要安装google usb驱动。也可通过资源中的 usb_driver来安装将手机通过usb链接电脑打开设备管理器找到你的手机右键选择更新驱动程序选择 游览我的电脑一查找驱动程序点击浏览选择下载好的谷歌usb驱动解压后的文件夹usb_driver 点击确定点击下一步最后关闭设备管理器 。出现Press any key to exit字样则安装完成。手机点击电源键让手机正常启动手机刷机升级成功问题安装完成后无法获取root权限主要流程PC连接进入手机adb shell执行su失败 同时无法进行查看、写入文件等操作解决确认手机打开了开发者模式启用了USB调试打开USB 传输文件直接通过PC 传输文件。安装magisk并root获取ROM 的boo.img 前往adb install magisk.apk安装面具到手机把 boot.img 通过adb push到手机 /sdcard/download/ 命令adb push boot.img /sdcard/download/如果没有root 权限会push失败解决通过usb传输。手机上操作magisk依次执行点击安装-下一步-选中并修补一个文件- 选中boot.img-开始此后会生成magisk_patched-23000_xxxxx.img文件位于/storage/emulated/0/Download/目录下下载 magisk_patched-23000_xxxxx.img 文件到电脑上。可以是adb pull 或者 usb 传输刷magiskadb reboot bootloader进入fastboot 模式执行命令fastboot flash boot magisk_patched-23000_xxxxx.img如报异常fastboot: error: Couldn’t parse partition size ‘0x’. 可通过以下方案手动解决fastboot flash:raw boot magisk_patched-23000_f6qyz.img完成手机点击电源键让手机正常启动magisk安装成功root完成检查Root权限xx$:adb shell xx$:su注意 此时手机上会出现授权shell点击接受该指纹的电脑连接。此时手机上会出现Magisk的超级用户请求点击允许。这时候就可以用root的权限来做一些事情了。网络问题原因Nexus提示“已连接 但无法访问互联网”的解决办法Nexus连接WiFi成功,但提示“已连接 但无法访问互联网”刷到Android8.1后连接WIFI可能会提示网络已连接但无法访问互联网这里我还为大家提供了解决办法执行以下命令即可必须保证你手机开发者模式中的USB调试功能开启否则无法执行如下命令。adb shell settings putglobalcaptive_portal_detection_enabled1adb shell settings putglobalcaptive_portal_server www.google.cn adb shell settings putglobalcaptive_portal_http_url http://www.google.cn/generate_204 adb shell settings putglobalcaptive_portal_https_url https://www.google.cn/generate_204# 刷新时间adb shell settings putglobalntp_server asia.pool.ntp.org重启wifi 无法使用第一种 没有更新时间adb shell settings putglobalntp_server asia.pool.ntp.org第二种 重新刷boot.img# 找到boot.img文件boot.img文件在你下载的刷机压缩包中你只需要解压压缩包复制boot.img文件adb reboot bootloader# 进入fastboot模式fastboot flashing unlock# 解 oem 锁fastboot flash boot boot.img# 重刷boot.img安装charler 证书配置系统代理安装证书7.0版本以上 迁移证书到 /system/etc/security/cacerts/注意 chrome 下载证书时报错 下载失败 找不到SD卡原因 没有赋予chrome root 权限写磁盘失败。解决Magisk 中 打开 设置 》 配置超级用户列表》显示系统应用》找到 Chrome com.android.chrome》打勾重新下载证书成功。迁移证书权限解决这里不推荐使用adb 命令 因为使用过程中会出现很多问题。命令行操作adb shellmount -o remount,rw /system 设置挂载为读写 mv /data/misc/user/0/cacerts-added/1111111.0 /system/etc/security/cacerts/或cp /data/misc/user/0/cacerts-added/1111111.0 /system/etc/security/cacerts/mount -o remount,ro /system 恢复挂载为只读 reboot (重启)安装的证书位置/data/misc/user/0/cacerts-added 用户级证书下载 re文件管理器Root Explorer使用re 管理器 进行迁移/data/misc/user/0/cacerts-added/1111111.0 — /system/etc/security/cacerts/mount 失败是因为user版默认开启了分区检测。解决关闭分区检测adb root adb disable-verity adbrebootadb remount adb shellmount-orw,remount /system为了知道你的安卓的构建类型输入以下命令adb shellcat/system/build.prop|grepbuild.type代理证书问题手机charles 证书过期重新安装后 证书冲突 导致抓不到包解决重刷 boot.img, 重新激活面具 原有数据会自动集成关于权限问题的解决使用 Magisk 安装一个模块 Move Certificates 模块。操作先安装证书在安装Move Certificates 模块重启生效查看MoveCertificate 的运行原理系统证书位置 /system/etc/security/cacerts/用户证书安装位 /data/misc/user/0/cacerts-added/ 用户手动安装的证书存放位MoveCertificate 挂载位 /data/adb/modules/MoveCertificate/certificates/(有些版本MoveCertificate 路径不同 可以adb shell 自行查看)原理 MoveCertificate 会从 系统证书位置、用户证书安装位、 /data/local/tmp/cert 这三个位置把 hash.0 证书 copy 到自己的挂载位置在此过程中会对文件进行 赋权、 改属主、 SELinux ) 之后 hook 系统证书加载机制这就是为什么需要重启生效的原因让原本的系统证书位置变为MoveCertificate 挂载位实现证书迁移的目的这本质上是一种伪装基于上方原理 后期证书到期更换 只需要删除挂载位对应的 hash.0 证书即可show_certificate.sh可以查看 hash.0 对应的证书名使用方式# 需要先赋权 chmod x show_certificate.shshow_certificate.sh{目标路径}# ./show_certificate.sh /data/local/tmp/cert# /data/local/tmp/cacerts_dump/./: 1 file pulled, 0 skipped. 0.3 MB/s (1365 bytes in 0.005s)# 76ee7707.0 - XK72 Ltd | Charles Proxy CA (23 Apr 2026# subjectCNCharles Proxy CA (23 Apr 2026, TF-MacBook-Pro.local), OUhttps://charlesproxy.com/ssl, OXK72 Ltd, LAuckland, STAuckland, CNZ查看 SELinuxls-Z/a8d42a70.0修改SELinuxchcon u:object_r:system_security_cacerts_file:s0 /a8d42a70.0异常处理如果不小心把 MoveCertificate 挂载位 的证书全部删除 那么会出现 系统崩溃会出来一直重启。救机1、只能通过一直按着电源 音量 键 - 来重新启动2、关闭 MoveCertificateadb shell su -c touch /data/adb/modules/MoveCertificate/disableshow_certificate.sh 内容#!/usr/bin/env bashset-euopipefailREMOTE_DIR${1:-/system/etc/security/cacerts}REMOTE_TMP_DIR/data/local/tmp/cacerts_dumpLOCAL_TMP_DIR$(mktemp-d/tmp/cacerts_dump.XXXXXX)cleanup(){rm-rf$LOCAL_TMP_DIRadb shellsu-crm -rf $REMOTE_TMP_DIR/dev/null21||true}trapcleanup EXITneed_cmd(){command-v$1/dev/null21||{echomissing command:$12exit1}}extract_field(){localfield$1localsubject$2python3 -$field$subjectPY import re import sys field sys.argv[1] subject sys.argv[2] patterns [ rf{re.escape(field)}\s*\s*([^,\/]), rf/{re.escape(field)}([^/]), ] for pattern in patterns: match re.search(pattern, subject) if match: print(match.group(1).strip()) break PY}choose_display_name(){localsubject$1localo cn ouo$(extract_fieldO$subject)cn$(extract_fieldCN$subject)ou$(extract_fieldOU$subject)if[[-n$o-n$cn]];thenprintf%s | %s\n$o$cnelif[[-n$o-n$ou]];thenprintf%s | %s\n$o$ouelif[[-n$o]];thenprintf%s\n$oelif[[-n$cn]];thenprintf%s\n$cnelif[[-n$ou]];thenprintf%s\n$ouelseprintf%s\n$subjectfi}read_subject(){localcert_path$1openssl x509-informDER-in$cert_path-noout-subject2/dev/null||\openssl x509-in$cert_path-noout-subject2/dev/null}need_cmd adb need_cmd openssl need_cmd python3 adb get-state/dev/nullmkdir-p$LOCAL_TMP_DIR/cacerts_dumpadb shellsu-crm -rf $REMOTE_TMP_DIR mkdir -p $REMOTE_TMP_DIR cp $REMOTE_DIR/* $REMOTE_TMP_DIR//dev/null adb pull$REMOTE_TMP_DIR/.$LOCAL_TMP_DIR/cacerts_dump//dev/nullfound0forfin$LOCAL_TMP_DIR/cacerts_dump/*;do[[-f$f]]||continuefound1subject$(read_subject$f||true)if[[-z$subject]];thenecho$(basename$f)- parse failedcontinuefidisplay_name$(choose_display_name$subject)echo$(basename$f)-$display_nameecho$subjectdone抓包异常排查先按这个顺序查通常很快能定位确认手机真的走了 Charles 代理Pixel 的 Wi‑Fi 代理里代理主机 要填你电脑的局域网 IP不是 127.0.0.1端口一般是 8888手机和电脑要在同一个局域网先访问一个普通 http://neverssl.com如果这个都不经过 Charles说明不是 HTTPS 问题而是代理没通确认 Charles 开了 SSL ProxyingProxy - SSL Proxying Settings勾选 Enable SSL Proxying最好先加一条:如果没开HTTPS 只能看到 CONNECT不会解密确认电脑端防火墙没拦 CharlesmacOS 防火墙或安全软件可能拦住了 8888手机如果能上网但 Charles 没记录常见就是代理流量没真正进到 Charles在 Charles 里也看下是否弹过允许该设备连接的窗口确认 Charles 根证书确实被 Android 当成系统证书加载了你说已经挂到系统目录但这里最容易“看起来放进去了其实没生效”。重点检查路径/system/etc/security/cacerts/文件名必须是 hash.0 格式权限通常 644属主root:root放进去后是否 重启手机在 Android 里确认系统证书可见去设置 - 安全 - 受信任的凭据 - 系统 看里面能不能看到 Charles 证书。如果看不到基本就是文件名 hash 不对权限不对没有真正写入 systemsystem 分区修改未生效看 Charles 里的具体表现 这一步很关键完全没有请求代理没通有 HTTPHTTPS 只有 CONNECT大概率 SSL Proxying 没开或者手机不信任 Charles 证书HTTPS 请求出现后直接握手失败大概率证书注入没成功Android投屏神器scrcpy 官网scrcpy 使用相关资料Android 设备通过 fastboot 刷入 TWRP【TWRP】使用adb sideload线刷ROM的方法Android中fastboot devices无法发现设备解决方案和adb remount问题解决获取 Google USB 驱动程序Google Nexus 6P手机刷机升级降级Root详细教程Android投屏神器(使用教程)
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2552216.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!