尝试在Nexus 7(2013)上“ adb侧载” OTA更新时收到验证错误


17

笔记:

  • 平板电脑已解锁并已扎根(SuperSU Pro v1.75)
  • 我有以下恢复闪存:TWRP 2.6.3.0,但是我正在为adb sideload调用启动存货恢复
  • 已安装驱动程序,主机为Win 7 x64,并且可以在每种模式下检测设备(MTP,USB调试,引导程序)

尝试adb sideload(通过库存恢复)7d9b309e11da82edb5373a1f59965bca89f6041f.signed-razor-KRT16S-from-JSS15R.7d9b309e.zipNexus 7(2013)[Wi-Fi]上的文件时,出现错误消息:

Finding update package...
Opening update package...
Verifying update package...
Installing update...
Verifying current system...
"/system/app/Drive.apk" has unexpected contents.
E:Error in /tmp/update.zip
(Status 7)
Installation aborted.

我究竟做错了什么?为了adb sideload取得成功,我必须改变什么?


您还可以使用其他恢复/引导加载程序。例如,要在XT925上安装最新的CM,我必须使用下载页面上的自定义映像(它甚至比发条的映像还要小)。还请记住,从快速加载程序重新引导到引导加载程序可能非常棘手,因为在重新引导时可能会被库存引导加载程序代替。
cregox

Answers:


11

目标

如果您已经下载了OTA映像,并且在我的情况下最终没有成功,您应该adb sideload <filename>仍然可以手动进行操作(此处是视频)。

问题/错误

...不幸的是,OTA会通过以下adb sideload错误进行更新:

Finding update package...
Opening update package...
Verifying update package...
Installing update...
Verifying current system...
"/system/app/Drive.apk" has unexpected contents.
E:Error in /tmp/update.zip
(Status 7)
Installation aborted.

哪里/system/app/Drive.apk可以是任何系统应用程序。

应该责怪谁?

  • 我以为TWRP不应归咎于我,但一开始它也应该适用。
  • TitaniumBackup Pro。由于我已经扎根了设备并使用了高级用户功能,因此我应该知道它的副作用。现在,我确实知道了:)...,现在您很有可能从此答案中了解到这一点。

错误的明显原因

使用Titanium Backup Pro,我使用了“冻结”功能来摆脱一些系统应用程序,即:

  • 华硕键盘
  • 日历
  • 日历存储
  • com.android.providers.partnerbookmarks
  • com.android.sharedstoragebackup
  • com.google.android.voicesearch
  • 交流服务
  • 邮箱
  • Google一次初始化
  • Google Play图书
  • Google Play游戏
  • Google Play杂志
  • Google Play电影
  • Google Play音乐
  • 谷歌搜索
  • Google文字转语音引擎
  • 环聊
  • iWnn IME
  • iWnnIME键盘(白色)
  • 一次初始化

显然这就是为什么adb sideload在我的问题中给出错误信息的情况下,早期保释的原因。

我还卸载了一些系统应用程序,我想我还记得“ Drive”(记得吗?:)/system/app/Drive.apk是其中之一。

解决方案

在这个答案中的forum.xda-developers.com找到了解决方案。要点是,如果您拥有修改后的映像,则需要还原该映像以使OTA侧载成功。

首先下载您当前拥有的构建的库存映像。确保它是适合您的设备的设备。因此,我尝试从Wi-Fi版本升级JSS15RKRT16S,这意味着我需要下载4.3 (JSS15R)图像。就razor-jss15r-factory-ec2d4f76.tgz我而言,这就是文件。然后,我打开了包装,这给了我一个名为的子文件夹razor-jss15r。它的内部有shell脚本,一个.img文件和一个.zipimage-razor-jss15r.zip)。后者需要打开包装。然后,我将.img文件解压缩.zip到以下文件夹中:

  • boot.img
  • cache.img
  • recovery.img
  • system.img
  • userdata.img

然后,我按照链接的答案中概述的步骤进行操作:

  1. 引导进入引导程序(打开后直接保持Volume-downPower按下)
  2. 连接USB(在此之前,请确保已安装所有USB驱动程序
  3. 转到包含先前解压缩.img文件的文件夹
  4. 从Android SDK提示中检查您使用看到的设备fastboot devices
  5. 然后执行fastboot flash system system.img,将刷新库存系统分区

注意:与链接文章不同,我省略了步骤,fastboot erase system因为fastboot flash system system.img从输出中可以明显看出这一点。我也忽略了fastboot flash boot boot.imgfastboot flash recovery recovery.img因为我认为这些“分区”不太可能被修改(我是对的)。不过,您可能需要后两者。这可能取决于您所做的修改以阻止该adb sideload步骤(例如,阅读并理解错误消息)。

这是输出:

# fastboot flash system system.img
erasing 'system'...
OKAY [  1.160s]
sending 'system' (603447 KB)...
OKAY [ 19.786s]
writing 'system'...
OKAY [ 26.720s]
finished. total time: 47.668s

等等,这是一个可以进行OTA更新的干净系统。

简而言之,fastboot flash system system.img如果您在验证阶段遇到错误,则可能只需要从正在运行的库存映像中进行以下操作:

Verifying current system...
"/system/<SOME>.apk" has unexpected contents.
E:Error in /tmp/update.zip
(Status 7)

下载工厂图片(Nexus 7和两者)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.