Obteniendo un error de verificación al intentar "adb sideload" la actualización OTA en Nexus 7 (2013)

17

Notas:

  • La tableta está desbloqueada y rooteada (SuperSU Pro v1.75)
  • Tengo instalado el siguiente flash de recuperación: TWRP 2.6.3.0, pero estoy iniciando la recuperación de stock para la adb sideloadinvocación
  • Los controladores están instalados, el host es Win 7 x64 y el dispositivo se detecta en todos los modos (MTP, depuración USB, gestor de arranque)

Cuando intento adb sideload(a través de la recuperación de existencias) el archivo 7d9b309e11da82edb5373a1f59965bca89f6041f.signed-razor-KRT16S-from-JSS15R.7d9b309e.zipen mi Nexus 7 (2013) [Wi-Fi], recibo un error:

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.

¿Qué estoy haciendo mal? ¿Qué tengo que cambiar para tener adb sideloadéxito?

0xC0000022L
fuente
También existe la posibilidad de que pueda usar otro cargador de recuperación / arranque. Para instalar el último CM en mi XT925, por ejemplo, tuve que usar la imagen personalizada de la página de descarga (es incluso un poco más pequeña que la de un reloj). También tenga en cuenta que reiniciar desde fastload en bootloader puede ser muy, muy complicado, ya que puede ser reemplazado por stock bootloader al reiniciar.
cregox

Respuestas:

11

Objetivo

Si tiene la imagen OTA descargada y, como en mi caso, terminó sin éxito, aún debería poder adb sideload <filename>hacerlo manualmente ( video aquí ).

Problema / error

... desafortunadamente la actualización de OTA a través de adb sideloaderrores con:

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.

donde /system/app/Drive.apkpodría estar cualquier aplicación del sistema.

¿Quién no tiene la culpa?

  • TWRP no tiene la culpa, pensé que sí al principio, pero también funcionaría con TWRP.
  • TitaniumBackup Pro. Desde que rooteé mi dispositivo y uso una función de usuario avanzado, debería haber sabido de sus efectos secundarios. Ahora lo sé, sin embargo :) ... y hay una buena posibilidad de que aprendas sobre esto con esta respuesta ahora.

Causa aparente del error

Usando Titanium Backup Pro, utilicé la función "congelar" para eliminar algunas de las aplicaciones del sistema, a saber:

  • Teclado ASUS
  • Calendario
  • Almacenamiento de calendario
  • com.android.providers.partnerbookmarks
  • com.android.sharedstoragebackup
  • com.google.android.voicesearch
  • Servicios de intercambio
  • Gmail
  • Google One Time Init
  • Google Play Books
  • Juegos de Google Play
  • Google Play Magazines
  • Google Play Movies
  • Google Play Music
  • Búsqueda de Google
  • Motor de texto a voz de Google
  • Hangouts
  • iWnn IME
  • Teclado iWnnIME (blanco)
  • Una vez init

Aparentemente, esta fue la razón por la que adb sideloadsalieron temprano con el mensaje de error que figura en mi pregunta.

También desinstalé algunas de las aplicaciones del sistema, y ​​creo recordar que "Drive" (¿recuerdas ?:) /system/app/Drive.apkfue una de ellas.

La solución

Encontré la solución en forum.xda-developers.com en esta respuesta . La esencia es que si tiene una imagen modificada, debe restaurarla para que la carga lateral de OTA tenga éxito.

Primero descargue la imagen de archivo para la compilación que tiene actualmente. Asegúrese de que sea el correcto para su dispositivo. Así que yo estaba tratando de actualizar JSS15Ra KRT16Sla versión Wi-Fi, lo que significaba que tenía que descargar la 4.3 (JSS15R)imagen. Ese fue el archivo razor-jss15r-factory-ec2d4f76.tgzen mi caso. Luego desempaqué lo que me dio una subcarpeta llamada razor-jss15r. Dentro de él había scripts de shell, un .imgarchivo y un .zip( image-razor-jss15r.zip). El último necesitaba ser desempaquetado. Luego tuve los .imgarchivos en la carpeta en la que desempaqué .zip:

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

Luego seguí los pasos descritos en la respuesta vinculada:

  1. iniciar en el gestor de arranque (mantener Volume-downy Powerpresionar directamente después de encenderlo)
  2. conecte USB (asegúrese antes de eso, que todos los controladores USB estén instalados )
  3. cambiar a la carpeta con los .imgarchivos previamente descomprimidos
  4. verifique desde el indicador del SDK de Android con el que ve el dispositivo fastboot devices.
  5. luego ejecute lo fastboot flash system system.imgque mostrará una partición del sistema

Nota: a diferencia de la publicación vinculada, omití el paso con el fastboot erase systemporque eso aparentemente está implícito en lo fastboot flash system system.imgque se puede ver en la salida. También me excluí fastboot flash boot boot.imgy fastboot flash recovery recovery.imgporque pensé que era poco probable que estas "particiones" hubieran sido modificadas (tenía razón). Sin embargo, es posible que necesite los dos últimos. Probablemente dependerá de lo que haya modificado que impida el adb sideloadpaso (es decir, lea y comprenda el mensaje de error).

Aquí está la salida:

# 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, un sistema limpio que se puede actualizar OTA.

En resumen, es posible que solo necesite obtener fastboot flash system system.imgde la imagen de stock que está ejecutando, si alguna vez obtiene un error durante la fase de verificación:

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

Descargar para imágenes de fábrica (Nexus 7, ambas)

0xC0000022L
fuente