Nexus6p 刷机指北
作为 Android 开发者,肯定要对各种 Android 手机都非常熟悉(但是却使用 iPhone),那自然也不能少了 Google 亲儿子中的 Nexus 系列了,为了体验一下原生 Android 的流畅和官方全家桶的舒适体验,我在某宝上面弄了一台 450RMB 的 Nexus6P,这几天拿到了,准备鼓捣鼓捣,学习一下
首先踩的坑肯定就是网络相关的了,因为众所周知的原因,这个亲儿子无法与亲爹服务器取得联络,所以即使是连上了正常的 WiFi,也非常调皮地在右上角显示“已连接,但无法访问互联网”,只有当你不断点击跳过各种设置后,才可以上网,但是右上角仍然是显示一个带叉叉的 WiFi 图标,用以提醒你当前的网络不是稳定的科学的网络
既然这篇想讲刷机,现在又已经能上网了,先来研究下刷机和 root 是怎么回事,网络这个问题,就留待以后再研究了
开始刷机
我拿到手机的时候,店家就已经帮我刷了 8.1.0 版本的 Android,想要刷机,先去看看都有些什么镜像,因为是入门,这里就直接去下载官方镜像,以后再看看其他各种魔改的镜像,拿到想要刷的镜像之后,有以下几个步骤:
配置 ADB 环境变量(SDK)
搜索下载 ADB,这里不再赘述,ADB 的相关指令可以自行 Google
安装 ADB 手机驱动
只要下好ADB,连接上手机,电脑会自动下载并为手机安装上驱动,这里也不赘述
解锁 BootLoader
手机关机后,长按音量-和电源键,一直到看见一个盖子打开躺在地上的安卓机器人为止。这时就已经进入了 fastboot 页面了,这时可以看到左下角的一些关于手机的信息
其中有一条 Device is LOCKED ,那现在就来解锁设备,命令行输入:
1
fastboot devices
检查链接设备
前边的序列号就是你的设备的Serial Number(序列号),后边为fastboot链接,如果得不到这样的结果,可能是 adb 和驱动没有配置好。弄好了继续输入
1
fastboot oem unlock
手机会跳转到一个页面,问你是否解锁,但是这时我遇到一个报错,提示未知命令
看了下官方文档,也就是上方的下载镜像文件的网址,原来是指令已经更换为:
1
fastboot flashing unlock
输入后,正确跳转到询问是否解锁的页面
按音量上键,选择 yes,点击电源键确定,稍后手机会重启进入 recovery,重启就好了,可能时间比较长,静静等候。(在这一步中,已经刷入第三方 recovery 的话,重新解锁会卡死在开机动画,或者在开机画面不断循环,还要重新刷镜像,但是不要重刷 recovery,重刷 recovery 会把之前的第三方刷掉)重新进入 fastboot 界面,方法同上。
你会看到 Device is UNLOCKED 至此解锁完毕,要重新上锁也很简单,在 Bootbloader 下输入命令
1
fastboot flashing lock
Bootloader 会重新上锁。
线刷
前面操作都结束且成功,就可以开始线刷系统了,什么是卡刷和线刷呢?参考:线刷和卡刷的区别以及步骤
卡刷
卡刷就是通过内存卡给系统升级。在Android系统早期因为绝大多数手机自带的内存就比较小,所以都要借助外置SD卡来存放照片、音乐等。因为ROM刷机包体积都比较大,所以要将ZIP格式刷机包事先放入内存卡中,再通过第三方的recovery来将系统刷进去。(官方的recovery的没有提供相应的功能参考)
- 优点:方便、简单,刷机方法通用,不会破坏手机底层数据(所以理论上卡刷是不会将硬件刷坏);
- 缺点:需要借助第三方recovery,个别品牌或者机型需要事先获得ROOT权限才能够进行;
卡刷包一般是指代ota格式的更新包,它需要拥有差分更新的能力(在某些场合,卡刷包只包含新旧文件的差别以节省空间。如果不使用这个特性,ota格式的包也可以接近成为完整的刷机包),因此需要一个能操作单个文件的平台上才能执行,这个平台就是recovery
- 卡刷包内部结构
- system(系统apk文件)
- META-INF(签名信息)
- boot.img(内核)等文件夹和文件
线刷
通过数据线连接电脑来进行刷机,一般适用于官方的刷机包。也可以通过 fastboot 刷入第三方 recovery,通过如三星通过 KIES、ODIN,HTC 通过 RUU、索尼通过 flashtools 强刷工具等刷入
- 优点:可以进行底层修复,一般在升级过程中可直接将 bootloader、基带等一并升级,可在卡刷失败时可以使用官方刷机包进行救砖。
- 缺点:操作步骤繁琐,刷机工具调试复杂,刷机包必须和手机销售地对应,刷机过程中出现问题可能导致手机无法修复。
线刷包格式多种多样有:三星的是 .tar、.md5等,索尼为.ftf,HTC 为.exe等
简单了解了一下这两种刷机方式,然后解压我们下载好的系统镜像:
再把 image-angler-opm7.181205.001.zip 解压出来,得到一些 Recovery 和 system 的 img 文件,放到同一目录下,cd 进入此文件夹,依次执行:
1
2
3
4
5
6fastboot flash recovery recovery.img
fastboot flash boot boot.img
fastboot flash system system.img
fastboot flash cache cache.img
fastboot flash userdata userdata.img
fastboot reboot或者其实可以不用解压,Mac 系统直接把 .sh 文件拉到终端中,或者 /flash-all.sh,Windows 系统双击打开 .bat 文件,就可以自动执行以上语句
最后就刷机成功了,开机就可以进入手机设置流程
adb fastboot 常用命令及刷机技巧
1 |
|
穿插题外话
本文有一些图片上传后旋转不正确,因为图片的 EXIF 里标记了旋转 Rotate 90 CW ,直接打开图片时 chrome 会自动调整过来,这时应该在图片链接尾部加上参数 imageMogr2/auto-orient,如your_image_path?imageMogr2/auto-orient,可以让图片正常显示,详情查看七牛云存储-图片高级处理,原问题点击此处查看,关于使用 HTML 语言调整 Markdown 中的图片的方法
有待更新
这次只是简单地了解了刷机的基本操作和基本常识,root 失败了,卡在不断地进入 recovery 那里。但是好在还可以通过暂停再继续来跳过那个 bootloader 的页面,而要彻底关闭 bootloader,就比较复杂了。另外网络的问题还没有弄好,也没有体验到 Google 全家桶的强大,以后如果有空再研究下(虽然是不大可能再鼓捣刷机的东西了),附上几篇参考的文章: