Android刷机的一般步骤

Android刷机的一般步骤

1. 事前准备


先想好为什么要刷机?想清楚了吗?真的想清楚了吗!好的,我们应该打开一堆网页,一堆对应自己机型的刷机教程帖,还要做好重要数据备份,确保“不成功,也不能成仁”。那就开始吧:

确定设备解锁状态

  • Bootloader 界面:
$ fastboot oem get-bootinfo
	1. Bootloader Lock State : UNLOCKED => 表示已经解锁,可以刷机
	2. Bootloader Lock State : LOCKED => 表示未解锁,自行百度设备解锁方法

一般需要在官网申请解锁,并且需要等待 2~3 天的时间。

  • 在手机可用的情况下,进入开发者选项,查看如下:

数据备份

  • 建议使用 钛备份:可对逐个应用以及系统数据(包括 WIFI 信息,系统设置,短信,联系人,另外还有版本控制)进行备份,root 备份首选。
  • Adb 备份
  • TWRP 备份

配置电脑 Android 调试环境

打开一个终端,敲 adb 或者 fastboot,如果未显示异常,则说明已经配置好。如下:

$ adb --version
Android Debug Bridge version 1.0.40
Version 9.0.0_r3
Installed as /usr/bin/adb

若没有配置,安装软件包:pacman -S android-tools (Arch Linux ver.)
Windows 下载对应的工具包,解压即可。不过需要配置一下路径,或者直接把所有的文件都弄到解压的文件夹下操作。

另说一下驱动,在 Linux 和 Mac OS 下,均不需要考虑驱动的问题。在 Windows 下,需要在网上找到相应设备的驱动,安装好之后,才可以用 adb 进行刷机。这里一个显式的标志是:

右键开始菜单 => 设备管理器 => ADB interface

如果有这个 ADB 设备,则说明设备驱动已经安装好。

下载刷机包

这个就考验个人搜索能力了。一般而言在各自机型的官方论坛上找:一加论坛,MIUI论坛都是不错的选择。

其次可以在 XDA 上找,这是个国外比较活跃的 Android 论坛,里面有很多大牛发各种第三方 Rom 包。一般热门机型都可以在 XDA 上找到自己满意的 Rom.

下载合适的 Recovery

推荐:TWRP. 专门做第三方 Rec 的团队,首选!在这个网站上基本上可以下载到自己机型对应的 Rec.

2. 刷机


其实事前准备做得足够好的话,刷机很简单,而且风险非常低。

可以使用 MTP 协议事先将刷机包拷贝到手机存储目录 (一般是/storage/emulated/0/,在 Rec 下的目录结构可能会发生改变/sdcard). 也可以在 Rec 下使用 adb 传输。但前提是你要有功能完备的 Rec. 一般官方的 Rec 非常简陋,没什么功能。所以我们首先得刷入第三方 Rec.

刷入第三方 Recovery

在确保手机与电脑正确(开启USB调试)连接下,在命令行敲

$ adb devices
	xxxxxx device

会列出所有已连接的 Android 设备。在高版本的 Android 系统中应该会弹出一个对话框询问是否允许电脑调试本机,点击一律允许即可。

确保手机已经解锁,开机状态连接电脑。在命令行输入

$ adb reboot bootloader

手机会重启进入 bootloader,也就是 fastboot 模式。

确保执行目录里面有之前下载的 twrp-xxx.img 文件,命令行输入

$ fastboot flash recovery twrp-xxx.img

即完成第三方 Rec 的刷入。

Note: 此时也可以选择 fastboot boot twrp-xxx.img 临时从第三方 rec 启动

进入第三方 Recovery

在命令行输入

$ fastboot reboot

重启手机,然后同时按住电源键 + 音量下键(有些手机不一样,自行摸索) 进入 rec. 也可以等开机后输入

$ adb reboot recovery

进入rec.

刷机

Twrp 的 rec 界面十分友好,可以设置语言时区等等。刷机之前先要清理(特别提醒:这里已经默认你做好备份了)。我们经常清理的有四个分区

system				    # 系统分区
data				    # 数据分区:应用数据(设置,帐号,习惯等)
cache/davik cache	            # 缓存分区:应用缓存,系统缓存
internal storage	            # 个人资料存储:包含照片视频音乐等所有个人资料

一般 internal storage 是不会动的,把其他三个分区清掉。

然后安装刷机包,找到事先放好的刷机包位置,刷入,重启!

Note: 或者事先没有拷贝的话,确保命令执行目录中有你的刷机包,使用
adb push aex-xxx-rom.zip /sdcard
即可将刷机包拷贝至手机存储目录。

+++++++++++++++++++++++++++++++++++++++++++++++++
再或者,使用 ADB sideload 功能边传文件边刷。具体操作在 rec 中:高级 => ADB sideload
然后再命令行输入
adb sideload aex-xxx-rom.zip
即可开始刷机

完了!一般重启需要一些时间,请耐心等待一下。

补丁(root包, gapps包)

  • Root:推荐 Supersu 或者 Magisk
  • Gapps:推荐 Opengapps. Google 大法好,不带 Google 框架的安卓不是 Android!
  • Custom kernel

Note: 注意刷包步骤:先 rom 包,后补丁包。不过还是建议刷完 rom 重启一次,再进 rec 刷补丁包比较稳妥。

3. Troubleshooting


adbfastboot 报错:insufficient permission / permission denied

请按照 https://developer.android.com/studio/run/device 提示操作,唯一需要注意的是USB供应商ID. 可以用 lsusb 来判断。

连接手机之前:

$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 8087:0a2b Intel Corp. 
Bus 001 Device 003: ID 04f3:0c1a Elan Microelectronics Corp. 
Bus 001 Device 002: ID 04f2:b5a3 Chicony Electronics Co., Ltd 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

连接手机之后:

$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 8087:0a2b Intel Corp. 
Bus 001 Device 003: ID 04f3:0c1a Elan Microelectronics Corp. 
Bus 001 Device 002: ID 04f2:b5a3 Chicony Electronics Co., Ltd 
Bus 001 Device 041: ID 2717:ff48  
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

这样就可以判断该设备的供应商 ID 为 2717.

然后重启 udev 服务: udevadm control --reload(Arch Linux ver.)

拔掉手机线重新插入,再用 adb devices 列举一遍,就应该可以了。

Note: 另外可以尝试使用 root 权限执行命令: sudo adbsudo fastboot

Reference


  1. 在硬件设备上运行应用
  2. fastboot and adb not working with sudo
posted @ 2018-09-18 20:06  Yychi  阅读(4462)  评论(0编辑  收藏  举报