我知道你们一定和我一样在system分区干了奇怪的事情
然后验证通不过了吧
啊哈哈哈哈哈除了fastboot刷system镜像之外,你还可以这样修复。
首先我们先理解一下OTA包的原理
实际上解包以后可以发现其实是一大堆差量补丁。
这就是说,修改/system分区下原有的文件时会死的,往里面写新的文件时不会死的。
另外我们可以看到,这次升级只修改了/system和内核(/boot)和recovery,而没有修改radio
准备
- 4.4.3-KTU84M-from-4.4.2-KOT49H 从4.4.2到4.4.3的升级包 可从这里下载,(4.4.4-KTU84P-from-4.4.3-KTU84M 可从这里下载,5.0-LRX21O-from-4.4.4-KTU84P 可从这里下载)其他版本请从文末的原帖下载
- Nexus5官方镜像 下载4.4.2 KOT49H(升级4.4.4同理,下载4.4.3镜像)
- 下载ext4镜像解包工具 Android ICS JB EXT4 imagefile unpacker
- 你也可以到这里下载
最省力的办法(大版本升级适用)
进入fastboot,抠出镜像中的img
fastboot flash boot boot.img
fastboot flash recovery recovery.img
fastboot flash system system.img
纠结的办法(小版本升级适用)
自查
- 是否安装了Xposed,如果是,使用自带的卸载功能
- 是否使用过修改build.prop的应用(改机型、分辨率,etc)。在官方镜像中找到/system/etc/build.prop覆盖
- 是否使用幸运破解器的Android核心破解?。在官方镜像中找到/system/framework/core.odex覆盖;自带的恢复功能无法变回一模一样
- 刷过新的内核?从官方镜像里找到boot.img,在fastboot下刷入 fastboot flash boot boot.img
- 刷过第三方recovery?从官方镜像里找到recovery.img,在fastboot下刷入 fastboot flash boot recovery.img
- 某个版本的SuperSU之后,会在开机修改/system/bin/install-recovery.sh,需要手动替换
- 可以在adb shell 中使用find /system -type f -mtime -xxx,xxx是镜像编译日期到今天的天数
这些操作不影响本次升级
- root,安装了busybox,等
- unlock bootloader
刷了radio- 修改了hosts
搞定了?
- adb reboot bootloader
- 进入recovery
- 音量+键调出菜单->apply update from adb;连电脑上,输入adb sideload c1a33561be84a8a6a7d5a4c8e3463c4db9352ce6.signed-hammerhead-LRX21O-from-KTU84P.c1a33561.zip
- 喝杯茶
RP极好的话就成功了,但是一般来说会有某些文件hash失败,提示status 7
PS: 如果你使用Win8或以上系统,遇到device not found/未知设备,请高级启动->禁用驱动程序预先签名,并启动Device Install Service服务
这样的话就要再到镜像里抠出来覆盖了
我的情况是/system/lib/libbt-hci.so挂了,不知道哪个混蛋应用改掉的
以上ww
本文大部分姿势来自:http://forum.xda-developers.com/google-nexus-5/general/info-nexus-5-ota-help-desk-t2523217