Цель
Если у вас есть загруженный 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версии KRT16SWi-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, оба)