作为 Android 开发者,肯定要对各种 Android 手机都非常熟悉(
但是却使用 iPhone
),那自然也不能少了 Google 亲儿子中的 Nexus 系列了,为了体验一下原生 Android 的流畅和官方全家桶的舒适体验,我在某宝上面弄了一台 450RMB 的 Nexus6P,这几天拿到了,准备鼓捣鼓捣,学习一下
首先踩的坑肯定就是网络相关的了,因为众所周知的原因,这个亲儿子无法与亲爹服务器取得联络,所以即使是连上了正常的 WiFi,也非常调皮地在右上角显示“已连接,但无法访问互联网”,只有当你不断点击跳过各种设置后,才可以上网,但是右上角仍然是显示一个带叉叉的 WiFi 图标,用以提醒你当前的网络不是稳定的科学的网络
既然这篇想讲刷机,现在又已经能上网了,先来研究下刷机和 root 是怎么回事,网络这个问题,就留待以后再研究了
官方镜像
,以后再看看其他各种魔改的镜像,拿到想要刷的镜像之后,有以下几个步骤:
配置 ADB 环境变量(SDK)
搜索下载 ADB,这里不再赘述,ADB 的相关指令可以自行 Google
安装 ADB 手机驱动
只要下好ADB,连接上手机,电脑会自动下载并为手机安装上驱动,这里也不赘述
解锁 BootLoader
手机关机后,长按音量-和电源键,一直到看见一个盖子打开躺在地上的安卓机器人为止。这时就已经进入了 fastboot 页面了,这时可以看到左下角的一些关于手机的信息
其中有一条 Device is LOCKED ,那现在就来解锁设备,命令行输入:
检查链接设备
前边的序列号就是你的设备的Serial Number(序列号),后边为fastboot链接,如果得不到这样的结果,可能是 adb 和驱动没有配置好。弄好了继续输入
手机会跳转到一个页面,问你是否解锁,但是这时我遇到一个报错,提示未知命令
看了下官方文档,也就是上方的下载镜像文件的网址,原来是指令已经更换为:
1
|
fastboot flashing unlock
|
输入后,正确跳转到询问是否解锁的页面
按音量上键,选择 yes,点击电源键确定,稍后手机会重启进入 recovery,重启就好了,可能时间比较长,静静等候。(在这一步中,已经刷入第三方 recovery 的话,重新解锁会卡死在开机动画,或者在开机画面不断循环,还要重新刷镜像,但是不要重刷 recovery,重刷 recovery 会把之前的第三方刷掉)重新进入 fastboot 界面,方法同上。
你会看到 Device is UNLOCKED 至此解锁完毕,要重新上锁也很简单,在 Bootbloader 下输入命令
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 6
|
fastboot 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 文件,就可以自动执行以上语句
最后就刷机成功了,开机就可以进入手机设置流程
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
adb devices 显示设备信息
adb install 123.apk 安装一个软件
adb uninstall -k 123.apk 删除一个软件
adb shell 进入shell环境
adb push c:/1.txt /sdcard/sdir/ 向设备推送文件
adb pull /sdcard/1.txt C:/ 从设备取回文件
adb reboot bootloader/recovery 使手机重启进入BL或RE
adb shell settings put global captive_portal_https_url https://www.google.cn/generate_204 去除 WiFi 叹号, 貌似仅对 Android 7 有效
|
七牛云存储-图片高级处理
,
原问题点击此处查看
,
关于使用 HTML 语言调整 Markdown 中的图片的方法
-
Android 手机刷机基础知识扫盲贴
-
使用 adb 工具刷机
-
Nexus 6P Android 8.0 Root教程