安卓刷机
🐲 沉舟侧畔千帆过,病树前头万木春
本小节讨论如何通过 archlinux 给安卓手机刷机。
🔖 这一节将会讨论:
目录
⚠️ 注意
刷机有风险,解锁需谨慎
🔗 相关链接:
买可以刷机的手机最好买知名度大的品牌、有可能解锁 BootLoader 的手机以及较热门的机型,这样在刷机时可以方便的找到官方的 TWRP 和知名的 ROM 包(如 LineageOS、crDroid 和 PixelExperience等)。
如果是较冷门的品牌,官方可能没有提供 ROM,只能在网上自行寻找个人改造过的 TWRP 和上述 ROM 包的非官方(unofficial)ROM。这种个人改造版本的安全性比较难说,而且还可能有更多的 🐛 Bug。也有可能翻遍全网,也找不到冷门机型能用(指好用的、非硬件提供商的官方 ROM)的 TWRP 和 ROM。
硬件方面,一般推荐买高通骁龙的 CPU,不建议买联发科的,因为更多 ROM 的版本都是适配高通硬件的。
ℹ️ 提示
较新的华为、VIVO等设备解锁困难,刷机几乎成为不可能。
首先需要安装 Linux 上的安卓工具包:
sudo pacman -S android-tools android-udevℹ️ 提示
对于部分机型,仅仅安装android-tools是不够的,还必须安装android-udev。 (systemd版本v258之前必须安装) 不安装,使用fastboot devices可以查看设备,可进行部分操作。 一些关键操作,比如fastboot flash boot xxx 大概率会中断,然后设备会自动重启(这里可能会让人感到很困惑)。
fastbootd模式,运行着一个fastboot daemon。不安装udev也可以正常工作,但是使用fastboot模式时,必须安装。
这里的android-udev,就类似于Windows系统安装驱动
这里是来自arch wiki的解释: Since systemd v258 it now includes basic udev rules for android devices to make adb and fastboot work out of the box. If your device does not show up, try to install the android-udev package with additional rules.
立刻生效:sudo udevadm control --reload-rules && sudo udevadm trigger
生效依据:fastboot刷写分区不再有warning.
! 还有特殊情况,使用以上方法依旧无法正常操作设备
- 常见失效命令有: fastboot flash ...
首行出现警告⚠
在以上指南下依旧失效的情况下 不妨试试: fastboot boot ...
如果长时间卡住 直接取消然后再次尝试: fastboot flash boot ...
如果出现等待设备字样 这时手机应该是一个特殊界面,界面只有fastboot字样 顶部有一行小字 按任意键即可触发重启
这个时候按音量下+关机键,重新进入fastboot
刚刚等待的设备,等到了
有一定概率这样操作就能成功刷入了
其他
不一定有效(没有控制变量实验验证)的方法:安装android-studio
获得google的保佑效果:机魂大悦安装android-sdk-platform-tools yay -S android-sdk-platform-tools 参考链接
最后兜底的方法: 不要用linux刷机了,回Windows,安装驱动刷。
1. 解锁 BootLoader
ℹ️ 提示
解锁之前建议先退出手机内的Google账号,部分机型需要在开发者设置中打开OEM解锁一项。
手机先通过数据线连接电脑,重启到 fastboot 模式:
shadb reboot bootloaderℹ️ 提示
注意要连到 USB 2.0 的接口,否则可能有兼容性问题。
解锁 BootLoader:
小米: 小米官方会提供解锁 BootLoader 的途径和工具,但是这些工具基本只能在 Windows 下用。
OPPO、真我realme: 黑厂的机型一般需要进行深度测试解锁,申请速度很慢,并且新机型在第一时间内不能申请深度测试解锁。
一加、红魔、LG、Google: 这些品牌的解锁比较简单。
fastboot flashing unlock之后按照手机上的提示,使用音量键选择unlock解锁并用电源键确认即可。
其他: 不知名的机型和部分OEM机型。可以尝试下面的指令解锁
fastboot oem unlock对于部分较旧的(3年前的)联发科芯片的手机可以使用漏洞解锁。
2. 刷入 TWRP 并进行刷机
在 TWRP 官网 搜索并下载机型对应的 TWRP
ℹ️ 提示
没有官方 TWRP 的设备,可以在 UNofficialtwrp 查看下是否有。
如果没有相关信息有几个论坛和网站可以看看:
- XDA Forums
- CusROM
- ANDROID FILE HOST —— 搜索
开发代号+你想要的系统名字
ℹ️ 提示
一般 TWRP 的版本和 ROM 包有对应关系,刷机前先确认你的两个版本是兼容的,否则刷机过程可能报奇怪的错误,如
unable to mount /system。同上 1. 解锁 BootLoader,通过数据线连接电脑,重启到 fastboot 模式
执行以下命令:
bashfastboot flash recovery /path/of/your_twrp.img看到命令执行完毕的时候,就可以让手机重启了
ℹ️ 提示
执行
fastboot reboot可以重启,但是许多设备会在首次启动时自动覆盖替换你刷入的自定义 recovery,如乐视的 Le 2(X620)。直接重启会报不是官方系统或类似错误。为防止这种情况,在手机上通过硬件按键重启进入 recovery,TWRP 将给 ROM 打上 patch,以防止 ROM 替换 TWRP。
剩下的步骤就是普通的进入 TWRP > 双清 > 刷机即可
ℹ️ 提示
有时双清或者进入 TWRP 可能看到报错。这时尝试使用高级清理,从 ext4 改一下格式,再改回 ext4 问题可能就解决了。
ℹ️ 提示
可能需要用到的更多命令:
adb shell # 打开 adb shell
adb root # 在手机已经 root 的情况下打开 root 权限的 adb shell