Ошибка проверки при попытке «adb sideload» обновления OTA на Nexus 7 (2013)

17

Примечания:

  • Планшет разблокирован и рутирован (SuperSU Pro v1.75)
  • У меня установлена ​​следующая флэш-память восстановления: TWRP 2.6.3.0, но я загружаю стоковый рекавери для adb sideloadвызова
  • Драйверы установлены, хост - Win 7 x64, и устройство определяется в каждом режиме (MTP, USB debug, bootloader).

При попытке adb sideload(через стоковое восстановление) файла 7d9b309e11da82edb5373a1f59965bca89f6041f.signed-razor-KRT16S-from-JSS15R.7d9b309e.zipна моем Nexus 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успеха?

0xC0000022L
источник
Также есть шанс, что вы можете использовать другой recovery / bootloader. Например, чтобы установить последнюю версию CM на мой XT925, мне пришлось использовать пользовательский образ со страницы загрузки (он даже немного меньше, чем у часового механизма). Также имейте в виду, что перезагрузка из fastload в загрузчик может быть очень, очень сложной, так как она может быть заменена стандартным загрузчиком при перезагрузке.
Cregox

Ответы:

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 не виноват, я так думал в начале, но он будет работать и с 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

Затем я выполнил шаги, изложенные в связанном ответе:

  1. загрузиться в загрузчик (держать Volume-downи Powerнажимать сразу после включения)
  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.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, оба)

0xC0000022L
источник