Цель
Если у вас есть загруженный 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 не виноват, я так думал в начале, но он будет работать и с TWRP.
- TitaniumBackup Pro. Поскольку я рутировал свое устройство и использую функцию опытного пользователя, я должен был знать о его побочных эффектах. Хотя теперь я знаю :) ... и есть хороший шанс, что вы узнаете об этом из этого ответа сейчас.
Видимая причина ошибки
Используя Titanium Backup Pro, я использовал функцию «заморозки», чтобы избавиться от некоторых системных приложений, а именно:
- Клавиатура ASUS
- Календарь
- Хранение календаря
- com.android.providers.partnerbookmarks
- com.android.sharedstoragebackup
- com.google.android.voicesearch
- Обмен валюты
- Gmail
- Google One Time Init
- Google Play Книги
- Google Play Игры
- Журналы Google Play
- Google Play Фильмы
- Google Play Music
- Поиск Гугл
- Google Text-to-Speech Engine
- Hangouts
- в IME
- iWnnIME клавиатура (белая)
- Единовременная инициатива
Это было очевидно, почему adb sideload
выручил рано с сообщением об ошибке, данным в моем вопросе.
Я также удалил некоторые системные приложения, и я думаю, что я помню, что «Drive» (помните? /system/app/Drive.apk
) Был одним из них.
Решение
Я нашел решение на forum.xda-developers.com в этом ответе . Суть в том, что если у вас есть измененный образ, вам нужно восстановить его, чтобы обеспечить успешную загрузку OTA.
Сначала загрузите изображение для сборки, которая у вас есть. Убедитесь, что он подходит для вашего устройства. Поэтому я пытался перейти с JSS15R
версии KRT16S
Wi-Fi с версии на, что означало, что мне нужно загрузить 4.3 (JSS15R)
образ. Это был файл razor-jss15r-factory-ec2d4f76.tgz
в моем случае. Затем я распаковал то, что дало мне подпапку с именем razor-jss15r
. Внутри него были сценарии оболочки, .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
Et вуаля, чистая система, которая может быть обновлена 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, оба)