目标
如果您已经下载了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版本升级JSS15R
到KRT16S
,这意味着我需要下载4.3 (JSS15R)
图像。就razor-jss15r-factory-ec2d4f76.tgz
我而言,这就是文件。然后,我打开了包装,这给了我一个名为的子文件夹razor-jss15r
。它的内部有shell脚本,一个.img
文件和一个.zip
(image-razor-jss15r.zip
)。后者需要打开包装。然后,我将.img
文件解压缩.zip
到以下文件夹中:
boot.img
cache.img
recovery.img
system.img
userdata.img
然后,我按照链接的答案中概述的步骤进行操作:
- 引导进入引导程序(打开后直接保持Volume-down并Power按下)
- 连接USB(在此之前,请确保已安装所有USB驱动程序)
- 转到包含先前解压缩
.img
文件的文件夹
- 从Android SDK提示中检查您使用看到的设备
fastboot devices
。
- 然后执行
fastboot flash system system.img
,将刷新库存系统分区
注意:与链接文章不同,我省略了步骤,fastboot erase system
因为fastboot flash system system.img
从输出中可以明显看出这一点。我也忽略了fastboot flash boot boot.img
,fastboot 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和两者)