Występuje błąd weryfikacji podczas próby „adb sideload” aktualizacji OTA na Nexusie 7 (2013)

17

Uwagi:

  • Tablet jest odblokowany i zrootowany (SuperSU Pro v1.75)
  • Mam następującą pamięć flash odzyskiwania: TWRP 2.6.3.0, ale uruchamiam odzyskiwanie zasobów dla adb sideloadwywołania
  • Sterowniki są zainstalowane, host jest Win 7 x64 i urządzenie jest wykrywane w każdym trybie (MTP, debugowanie USB, bootloader)

Podczas próby adb sideload(poprzez odzyskiwanie zapasów) pliku 7d9b309e11da82edb5373a1f59965bca89f6041f.signed-razor-KRT16S-from-JSS15R.7d9b309e.zipna moim Nexusie 7 (2013) [Wi-Fi] pojawia się błąd:

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.

Co ja robię źle? Co muszę zmienić, aby adb sideloadodnieść sukces?

0xC0000022L
źródło
Istnieje również szansa na użycie innego odzyskiwania / bootloadera. Na przykład, aby zainstalować najnowszą CM na moim XT925, musiałem użyć niestandardowego obrazu ze strony pobierania (jest nawet trochę mniejszy niż zegarowy). Należy również pamiętać, że ponowne uruchomienie z szybkiego ładowania do bootloadera może być bardzo, bardzo trudne, ponieważ może zostać zastąpione przez zapasowy bootloader przy ponownym uruchomieniu.
cregox

Odpowiedzi:

11

Cel

Jeśli masz pobrany obraz OTA i, tak jak w moim przypadku, zakończyłeś się niepowodzeniem, powinieneś być w stanie zrobić adb sideload <filename>to ręcznie ( tutaj wideo ).

Problem / błąd

... niestety aktualizacja OTA poprzez adb sideloadbłędy z:

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.

gdzie /system/app/Drive.apkmoże być dowolna aplikacja systemowa.

Kto nie jest winny?

  • Na początku nie należy winić TWRP, tak myślałem na początku, ale będzie również działać z TWRP.
  • TitaniumBackup Pro. Ponieważ zrootowałem urządzenie i korzystałem z funkcji zaawansowanego użytkownika, powinienem był wiedzieć o jego skutkach ubocznych. Teraz jednak wiem :) ... i jest duża szansa, że ​​dowiesz się o tym z tej odpowiedzi.

Widoczna przyczyna błędu

Korzystając z Titanium Backup Pro, użyłem funkcji „zamrożenia”, aby pozbyć się niektórych aplikacji systemowych, a mianowicie:

  • Klawiatura ASUS
  • Kalendarz
  • Pamięć kalendarza
  • com.android.providers.partnerbookmarks
  • com.android.sharedstoragebackup
  • com.google.android.voicesearch
  • Usługi wymiany
  • Gmail
  • Google One Time Init
  • Książki Google Play
  • Gry Google Play
  • Czasopisma Google Play
  • Filmy Google Play
  • Muzyka Google Play
  • Wyszukiwarka Google
  • Google Text-to-speech Engine
  • Hangouty
  • iWnn IME
  • Klawiatura iWnnIME (biała)
  • One Time Init

Najwyraźniej dlatego adb sideloadwyskoczyłem wcześnie z komunikatem błędu podanym w moim pytaniu.

Odinstalowałem również niektóre aplikacje systemowe i myślę, że pamiętam, że „Dysk” (pamiętasz ?:) /system/app/Drive.apkbył jedną z nich.

Rozwiązanie

W tej odpowiedzi znalazłem rozwiązanie na forum.xda-developers.com . Istotą jest to, że jeśli masz zmodyfikowany obraz, musisz go przywrócić, aby sideload OTA się powiódł.

Najpierw pobierz obraz podstawowy dla aktualnie posiadanej wersji. Upewnij się, że jest odpowiedni dla twojego urządzenia. Próbowałem więc zaktualizować wersję JSS15Rdo KRT16SWi-Fi, co oznaczało, że musiałem pobrać 4.3 (JSS15R)obraz. To był plik razor-jss15r-factory-ec2d4f76.tgzw moim przypadku. Następnie rozpakowałem to, co dało mi podfolder o nazwie razor-jss15r. Wewnątrz były skrypty powłoki, .imgplik i .zip( image-razor-jss15r.zip). Ten ostatni musiał zostać rozpakowany. Potem miałem .imgpliki w folderze, w którym rozpakowałem .zip:

  • boot.img
  • cache.img
  • recovery.img
  • system.img
  • userdata.img

Następnie wykonałem kroki przedstawione w powiązanej odpowiedzi:

  1. uruchom do bootloadera (trzymaj Volume-downi Powerwciśnięty bezpośrednio po włączeniu)
  2. podłącz USB (wcześniej upewnij się, że wszystkie sterowniki USB są zainstalowane )
  3. przejdź do folderu z wcześniej rozpakowanymi .imgplikami
  4. sprawdź w wierszu polecenia zestawu SDK systemu Android, że widzisz urządzenie fastboot devices.
  5. następnie uruchom, fastboot flash system system.imgco spowoduje flashowanie partycji systemowej

Uwaga: inaczej niż w łączonym poście, pominąłem krok z, fastboot erase systemponieważ najwyraźniej wynika to z tego, fastboot flash system system.imgco widać na podstawie wyników. Pominąłem również fastboot flash boot boot.imgi fastboot flash recovery recovery.imgponieważ myślałem, że jest mało prawdopodobne, aby te „partycje” zostały zmodyfikowane (miałem rację). Być może jednak potrzebujesz dwóch ostatnich. Prawdopodobnie będzie to zależeć od tego, co zmodyfikowałeś, co uniemożliwia wykonanie adb sideloadkroku (tj. Przeczytaj i zrozum komunikat o błędzie).

Oto wynik:

# 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 voila, czysty system, który można aktualizować w OTA.

Krótko mówiąc, może być konieczne tylko fastboot flash system system.imgz uruchomionego obrazu podstawowego, jeśli kiedykolwiek wystąpi błąd podczas fazy weryfikacji:

Verifying current system...
"/system/<SOME>.apk" has unexpected contents.
E:Error in /tmp/update.zip
(Status 7)

Pobierz obrazy fabryczne (Nexus 7, oba)

0xC0000022L
źródło