手动升级 Nexus 5 的 4.4.3 OTA 更新

XDA 社区大神 El Daddy 编写的手动升级 Nexus 5 到 Android 4.4.3 版本 OTA 更新的方法。修改过或者破解过的手机可能无法自动升级新的 OTA,所以这里提供了手动升级的方法。

关于 OTA

根据 XDA 社区大神 El Daddy 的提示,OTA (Over the Air) 升级只是更新手机软件的一种方式,而且必须是原厂未动过的机器才能 OTA 成功。。当 OTA 下载到手机之后,会提示你重启手机并安装更新。OTA 并不是完整的镜像,而是一系列针对手机操作系统(Android)的升级包。OTA 中包括的升级包可以是:bootloader、基带版本、系统、Recovery 和 内核。安装 OTA 更新的时候,安装程序会检测要更新的文件,也就是手机原来自带的文件是否正确。如果不正确,更新过程就会终止。所以,确保手机里的系统是出厂状态是非常关键的。不过也不需要太担心,即使已经解锁了手机,或者是打了别的补丁(比如 Xposed、DPI 等),也是能够让它回复到原来的状态的。

当然也可以自己手动升级 OTA 更新,只要有正确的 OTA 软件包。只不过还需要 adb,或者自定义 recovery 来完成。所以呢,如果知道自己的手机已经不能正常进行推送的 OTA 更新了,或者不想等推送的 OTA 更新,那就可以按照 El Daddy 的方法自己手动升级手机了。

下面是水景一页编译的 El Daddy 提供的手动更新方法。

注意:这是 6月5日 编译的。请在应用时查看原帖状态是否更改。

要保证 OTA 能够顺利完成,手机必须是原厂状态:

  • 从 KOT49H 升级;
  • 当前 Bootloader:HHZ11k
  • 基带版本:M8974A-1.0.25.0.23
  • 原厂内核: 3.4.0-gadb2201
  • 所有 /system 程序都在;
  • 没有对原厂系统中 /system 里的文件做任何形式的修改。

注释:严格来讲,任何形式的修改都会破坏 OTA,导致失败。Xposed、DPI、build.prop、volume mod 等等。任何修改

如果你符合上面的标准,OTA 就能够成功完成。上面部分信息可以从手机的设置关于手机 页面查看。

如果不符合上述标准,那就只能按照下面的步骤来自己更新 OTA 了。

当前 OTA

4.4.3-KTU84M-from-4.4.2-KOT49H:

http://android.clients.google.com/packages/ota/google_hammerhead/d173d546ab2347ead90cb0978657f11046300511.signed-hammerhead-KTU84M-from-KOT49H.d173d546.zip Thanks @euqiddis

以前的 OTA

http://forum.xda-developers.com/showpost.php?p=46289250&postcount=1 Thanks @oldblue910

手动升级 OTA

下面是比较常见的情况。如果不清楚自己的手机属于哪种情况,请到原帖中咨询。

情形 #1
原厂系统。解锁/未解锁 bootloader。没有 root 权限。请从下面的 A 部分开始。

情形 #2
原厂系统,有 root 权限。修改了 Recovery 但没有对系统做任何修改或删除。请从下面的 B 部分开始。

情形 #3
原厂系统,安装了 Xposed Framework。请从下面的 C 部分开始。

情形 #4
原厂系统,自定义内核 和/或 旧的基带版本(Radio),且没有其它修改。请从下面的 D 部分第 1 节开始。

情形 #5
原厂系统。但是修改了 /system/ 文件夹中的内容,包括删除一个或多个系统 apk 和自定义内核。请从下面的 D 部分第 2 节开始。或者参考下面的特殊场景。 **特殊情形 #1 尚未更新**

情形 #6
自定义 ROM。请从下面的 D 部分第 3 节开始。

A 部分:adb sideload

注意:请确保你有最新版本的 adb。老版本的 adb 可能会有问题。本文最后有新版本 adb 下载。

1) 下载 OTA.zip 到电脑本地硬盘中,重命名为 update.zip,然后将它放到 adb 同一文件夹中。
2) 确保打开了“开发者选项”中的 “USB 调试模式”,然后连接手机到电脑。
3) 在 ADB 所在的文件夹里,按住 Shift 键的同时单击鼠标右键,选择“在此处打开命令窗口”,然后在窗口中输入命令,’adb reboot recovery‘(注意仅输入引号里面的内容,不包括引号,下同)并回车确认,手机会自动重启。
4) 手机自动重启进入恢复模式,将会看到手机上显示一个躺着的安卓机器人。按音量 + 键后松开,就会打开菜单。按音量键上下滚动到选择 “apply update from adb”,并按电源键确认。
5) 回到电脑上的命令行窗口,根据提示输入:’adb sideload update.zip‘,回车确认,该文件就会加载并开始升级。
6) 完成后,在手机上选择 “reboot”,手机重启后就是新系统了。

B 部分:使用自定义 Recovery 刷机(TWRP-CWM)

1) 下载 OTA.zip 到电脑本地硬盘,复制到手机中。
2) 手机重启进入 recovery 模式。
3) 按照普通刷机的方式安装 OTA 包。
4) 重启手机。

C 部分:卸载 Xposed Framework

在安装 OTA 之前使用 Xposed 安装器卸载 Xposed。进入 Xposed 安装器,框架,卸载。Xposed 安装器会卸载自己,并从备份中恢复原来的 /system 文件,然后重启手机。

特别注意:如果只是将 Xposed 安装器卸载,即使在重启后,/system/bin 中的“app_process”文件也还是被 Xposed Framework 修改过的那个,而不会恢复成原来的文件。所以要从 Xposed 安装器内置的卸载功能来卸载它。

关于 Xposed 安装器及相关信息请查看这里

卸载 Xposed 安装器之后,跳转到前面的 A 部分(原厂 Recovery)或者 B 部分(自定义 Recovery)继续。

@Hammer_Of_The_Gods & @C3C076

D 部分:恢复原厂状态

1) 使用 fastboot 从原厂镜像中刷回原厂的 boot.img 和/或 radio.img (根据自己的情况)。

需要用到的 Fastboot 指令为:

fastboot flash boot boot.img
fastboot flash radio radio-hammerhead-M8974A-1.0.25.0.23.img

注意:一些自定义内核会修改 /system/ 文件夹中的文件。如果是这种情况,将会遇到 status 7 错误以及修改过的文件。最简单的处理方式是直接刷回原厂 system.img 镜像。

2) 将修改或删除过的原厂内核或者 .apk 文件替换回去原厂文件。如果之前没有备份,那就只能直接刷回原厂 system.img 镜像了。

注意:这些文件必须跟之前原厂 rom 中带的对应文件的版本号一致。

Fastboot 指令为:

fastboot flash boot boot.img
fastboot flash system system.img

3)  刷回原厂的 KOT49H 镜像。需要的话可以参考 abaaaabbbb63 的教程

——————————————————————————————————–

完成上面这些刷回原厂系统的步骤后,重新检查自己是否符合文章前面列出的标准,然后根据自己的情况选择跳转到前面的 A 部分(原厂 Recovery)或者 B 部分(自定义 Recovery)继续。

FAQ

Q: 我遇到了 error: device not found 错误
A: 这是因为进入恢复模式后需要使用的驱动没有正确安装。可以使用通用的 Android 驱动,下载并安装即可。虽然会在设备管理器中显示为 Google Galaxy Nexus Interface,但是不影响使用。下载链接在文章最后。

Q: I’m seeing a status 7 error when trying to install the OTA
A: Look at the error closely. It will describe on the file it is failing at. Post the file path so we can help resolve the issue.

Q: The ota applied successfully but I lost my custom recovery and I want to re-root. How do I get root back?
A: Flash the custom recovery of your choice in fastboot and use it to regain root permissions

Q: I’ve tried everything, but I’m still getting status 7 errors.
A: Unfortunately you may have to start from scratch. Follow Section C1.

Q: I flashed a .zip file that modified (insert mod here.) Will I the OTA install successfully?
A: No, any modification at all will cause the OTA to fail.

Q: Why do I get a “cannot read update.zip” error when trying to sideload?
A: If you named the file update.zip, the actual name would be update.zip.zip. Windows auto names extensions by default. That could be your problem. If not try another usb cable or a different usb port. If that still doesn’t work, make sure you type exactly what you renamed the file. You may have made a typo. It is also case-sensitive.

直接刷机

上面的方法对于系统文件没有搞乱(修改或者删除,或者即使修改或删除了,但是有先见之明做了备份)的情况而言是非常好的:可以在不丢失用户数据的情况下升级。

但是我的手机比较悲催,可能是之前安装 CM 程序包的时候替换过系统的计算器程序,而现在又找不到之前的备份而无法还原,升级多次都是提示,Calculator.apk 中内容有误,然后就,

......
E: Error in /tmp/update.zip
(status 7)
Installation aborted.

既然如此,那就别怕麻烦了吧,干脆把手机里的数据都备份出来,也就不到10个GB,备份起来还是很快的。而从 Google Play 安装的软件以及其运行状态都通过 Google 账户内置的备份功能备份过了。

备份完了,就参考 XDA 上的这个帖子直接连接电脑用 fastboot 线刷了。感谢 @abaaaabbbb63 的详细介绍。

操作步骤:

  1. 下载 Nexus 5 的 Android 4.4.3 原厂镜像,这里有下载列表。近 500MB,感谢给力的宽带 :D
  2. 下载后,文件名是 .tgz 的,解压它,然后进入到解压后的文件夹,里面的文件是 .tar 后缀的,再解压。得到一个名为 hammerhead-ktu84m 的文件夹,包括文件,
        bootloader-hammerhead-hhz11k.img
        flash-all.bat
        flash-all.sh
        flash-base.sh
        image-hammerhead-ktu84m.zip
        radio-hammerhead-m8974a-2.0.50.1.13.img
  3. 下载下面提供的 platform-tools_19.0.1 工具包,解压,并将刚才 hammerhead-ktu84m 文件夹内部的所有 6 个文件剪切到该文件夹中,与里面的 fastboot.exe 等文件在一起。
  4. 手机关机。
  5. 同时按住音量减小键和电源键开机,进入 fastboot 界面。
  6. 用 USB 线连接手机到电脑。
  7. 双击运行 flash-all.bat 批处理文件(Windows 中)或者 flash-all.sh 脚本(Linux 或 Mac 中)(对于 Mac 而言,可能还需要编辑 flash-all.sh 脚本文件在每个 fastboot 指令前添加 “./” )。提示:如果不想完全擦除手机存储中的数据,可以将 flash-all.sh 中每条命令后面的 -w 参数删除。
  8. 等待程序运行,大概就几分钟吧。
  9. 程序运行完毕会自动开机。此时开机动画时间比较长,可能一两分钟吧,不要惊慌。
  10. 然后一会儿就会看到如同刚买回来手机时候那样开机选择语言、时区以及设置 Google 账号等操作。
  11. 把数据复制回去吧。
  12. root 也没有了,回头还需要再弄,还不知道以前的 root 方法管用不。

如果需要刷入定制的 Recovery,比如 TWRP,则接着进行下面的操作(下面的 9 步未经水景一页测试):

  1. 进入新的手机系统,打开“开发者模式”(进入 设置 – 关于手机 页面,在最下面的“版本号”上面连续轻触直到提示打开开发者模式为止)。
  2. 进入“开发者模式”中启用“USB 调试”,使得 fastboot 或者 ADB 可以从电脑上操作手机。
  3. 一旦启用,电脑应该能够检测到手机作为新硬件,等待驱动安装完成(如果失败,下面的下载中有提供)。
  4. 在 ADB 所在的文件夹里,按住 Shift 键的同时单击鼠标右键,选择“在此处打开命令窗口”,然后在窗口中输入命令,’adb reboot bootloader‘(注意仅输入引号里面的内容,不包括引号,下同)并回车确认,手机会自动重启。(没有 ADB 的话参考前面升级 OTA 的第 A 部分)。
  5. 下载最新的 TWRP 2.7.1.1 http://techerrata.com/browse/twrp2/hammerhead 并将 .img 文件放到 platform-tools 文件夹。(直链下载,如果速度慢,试试文后的镜像。)
  6. 然后在刚才的命令行窗口中输入,’fastboot flash recovery openrecovery-twrp-2.7.1.1-hammerhead.img‘ ,仔细检查不要输错了,回车确认。
  7. 等待完成并启动,按 音量减小 键直到显示 恢复 (Recovery) 模式,然后按一下 电源 键来确认选择。
  8. 现在,TWRP 应该已经安装好了。触摸 Reboot 重启系统,会提示安装 SuperSU,滑动以确认安装。好了 ,ROOT 也有了。
  9. 完成后启动系统,会收到 SuperUser 的提示升级/安装,按照提示操作即可。

参考:Reddit

下载

ADB 工具包 platform-tools_19.0.1:Google Drive  百度云盘

Android 设备 ADB 通用驱动:Google Drive  百度云盘

如果上面给出的 Android 4.4.3 OTA KTU84M 无法下载,可以使用这个 Google Drive 中的镜像。或者百度云盘中的镜像:http://pan.baidu.com/s/1dD9tZX3 。这两个下载中的软件包里面已经做好了批处理,用的时候仔细看看。(大小 92.2MB)

TWRP 2.7.1.1(13.3MB):Google Drive  百度云盘

更新

虽然很容易就用直接线刷的方式将 Nexus 5 升级到了最新的 4.4.3,但是因为大家都知道的原因,刚好碰上这些天 Google 服务无法访问,刚开机的时候连 Google 账户都无法登录。后来直接进入系统,最终想办法打开了 Google 账户,但是除了内置的 Google 应用及其同步保存在 Google 服务器上的配置和记录最后都同步回来了之外,自己下载安装的那些应用并没有自动下载过来。重新安装那些应用,其配置和历史数据也并没有同步回来。©

本文发表于水景一页。永久链接:<http://cnzhx.net/blog/manually-update-nexus-5-ota-4-4-3/>。转载请保留此信息及相应链接。

4 条关于 “手动升级 Nexus 5 的 4.4.3 OTA 更新” 的评论

  1. 我很少动底层系统,我的升级方式:
    1.设置》关于手机》系统更新》下载完更新包
    2.Xposed 安装器卸载 Xposed 》重启
    3.从“系统更新”中重启》升级至4.4.3
    升级之后还得重新root!

    • 谢谢反馈更新方法。
      可能因为是习惯于编程的思路,原作者列出的方法有些流程图的意味,看起来不如你这个说明直接。

雁过留声,人过留名

电子邮件地址不会被公开。 必填项已用*标注

特别提示:与当前文章主题无关的讨论相关但需要较多讨论求助信息请发布到水景一页讨论区的相应版块,谢谢您的理解与合作!请参考本站互助指南