Получение ошибки проверки при попытке «adb загрузить» обновление OTA на Nexus 7 (2013 г.)

Примечания:

  • Планшет разблокирован и рутирован (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.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успеха?

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

Ответы (1)

Цель

Если вы загрузили 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 тоже будет работать.
  • Титаниум Бэкап Про. Поскольку я рутировал свое устройство и использовал функцию опытного пользователя, я должен был знать о ее побочных эффектах. Теперь я знаю, однако :) ... и есть хороший шанс, что вы узнаете об этом из этого ответа сейчас.

Видимая причина ошибки

Используя Titanium Backup Pro, я использовал функцию «заморозки», чтобы избавиться от некоторых системных приложений, а именно:

  • Клавиатура ASUS
  • Календарь
  • Хранение календаря
  • com.android.providers.partnerbookmarks
  • com.android.sharedstoragebackup
  • com.google.android.voicesearch
  • Услуги обмена
  • Gmail
  • Однократная инициализация Google
  • Google Play Книги
  • Google Play Игры
  • Журналы Google Play
  • Google Play Фильмы
  • Google Play Музыка
  • Поиск Гугл
  • Механизм преобразования текста в речь Google
  • Видеовстречи
  • iWnn IME
  • Клавиатура iWnnIME (белая)
  • Однократная инициализация

По-видимому, именно поэтому adb sideloadрано выручил сообщение об ошибке, указанное в моем вопросе.

Я также удалил некоторые системные приложения, и, кажется, я помню, что «Диск» (помните? :) /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

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

  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

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