Obtendo erro de verificação ao tentar "adb sideload" a atualização do OTA no Nexus 7 (2013)

17

Notas:

  • O tablet está desbloqueado e enraizado (SuperSU Pro v1.75)
  • Eu tenho o seguinte flash de recuperação instalado: TWRP 2.6.3.0, mas estou inicializando a recuperação de estoque para a adb sideloadchamada
  • Os drivers estão instalados, o host é o Win 7 x64 e o dispositivo é detectado em todos os modos (MTP, depuração USB, carregador de inicialização)

Ao tentar adb sideload(via recuperação de estoque) o arquivo 7d9b309e11da82edb5373a1f59965bca89f6041f.signed-razor-KRT16S-from-JSS15R.7d9b309e.zipno meu Nexus 7 (2013) [Wi-Fi], recebo um erro:

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.

O que estou fazendo de errado? O que tenho que mudar para ter adb sideloadsucesso?

0xC0000022L
fonte
Há também uma chance de você poder usar outro recuperação / carregador de inicialização. Para instalar o CM mais recente no meu XT925, por exemplo, tive que usar a imagem personalizada da página de download (é ainda um pouco menor que a do relógio). Lembre-se também de que a reinicialização do fastload no bootloader pode ser muito, muito complicada, pois pode ser substituída pelo estoque do bootloader na reinicialização.
cregox 27/09/15

Respostas:

11

Objetivo

Se você fez o download da imagem OTA e, como no meu caso, acabou sem sucesso adb sideload <filename>, ainda será possível manualmente ( vídeo aqui ).

Problema / Erro

... infelizmente, a atualização do OTA ocorre através de adb sideloaderros com:

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.

onde /system/app/Drive.apkpoderia estar qualquer aplicativo do sistema.

Quem não tem culpa?

  • O TWRP não é o culpado, pensei assim no começo, mas funcionaria com o TWRP também.
  • TitaniumBackup Pro. Desde que enraizei meu dispositivo e utilizo um recurso de usuário avançado, eu deveria saber de seus efeitos colaterais. Agora eu sei, porém: ... ... e há uma boa chance de você aprender sobre isso com esta resposta agora.

Causa aparente do erro

Usando o Titanium Backup Pro, usei o recurso "congelar" para se livrar de alguns aplicativos do sistema, a saber:

  • Teclado ASUS
  • Calendário
  • Armazenamento do calendário
  • com.android.providers.partnerbookmarks
  • com.android.sharedstoragebackup
  • com.google.android.voicesearch
  • Serviços de Câmbio
  • Gmail
  • Google One Time Init
  • Google Play Livros
  • Jogos do Google Play
  • Revistas do Google Play
  • Google Play Filmes
  • Google Play Music
  • Pesquisa do Google
  • Mecanismo de conversão de texto em voz do Google
  • Hangouts
  • iWnn IME
  • Teclado iWnnIME (branco)
  • Inicialização única

Aparentemente, foi por isso que o adb sideloadresgate foi antecipado com a mensagem de erro dada na minha pergunta.

Também desinstalei alguns aplicativos do sistema e acho que lembro que o "Drive" (lembra ?:) /system/app/Drive.apkera um deles.

A solução

Encontrei a solução em forum.xda-developers.com nesta resposta . O essencial é que, se você tiver uma imagem modificada, precisará restaurá-la para que o carregamento lateral do OTA seja bem-sucedido.

Primeiro, faça o download da imagem da construção que você possui atualmente. Verifique se é o correto para o seu dispositivo. Então, eu estava tentando atualizar de JSS15Rpara KRT16Sa versão Wi-Fi, o que significava que eu precisava baixar a 4.3 (JSS15R)imagem. Esse foi o arquivo razor-jss15r-factory-ec2d4f76.tgzno meu caso. Depois, desempacotei o que me deu uma subpasta chamada razor-jss15r. Dentro dele havia scripts de shell, um .imgarquivo e um .zip( image-razor-jss15r.zip). O último precisava ser desembalado. Depois, tive os .imgarquivos na pasta em que descompactei o arquivo .zip:

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

Depois, segui as etapas descritas na resposta vinculada:

  1. inicialize no carregador de inicialização (mantenha Volume-down-o Powerpressionado diretamente após ligá-lo)
  2. conecte o USB (antes disso, verifique se todos os drivers USB estão instalados )
  3. mude para a pasta com os .imgarquivos descompactados anteriormente
  4. verifique no prompt do SDK do Android com o qual você vê o dispositivo fastboot devices.
  5. Em seguida, execute o fastboot flash system system.imgque irá piscar uma partição do sistema de estoque

Nota: ao contrário do post vinculado, deixei de fora a etapa com o fastboot erase systemporque isso aparentemente está implícito fastboot flash system system.imgcomo pode ser visto na saída. Eu também deixei de lado fastboot flash boot boot.imge fastboot flash recovery recovery.imgporque achava improvável que essas "partições" tivessem sido modificadas (eu estava certa). Você pode precisar dos dois últimos, no entanto. Provavelmente dependeria do que você modificou que impede a adb sideloadetapa (isto é, leia e entenda a mensagem de erro).

Aqui está a saída:

# 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, um sistema limpo que pode ser atualizado pelo OTA.

Portanto, em resumo, você pode precisar apenas fastboot flash system system.imgda imagem que está sendo executada, se algum erro ocorrer durante a fase de verificação:

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

Download para imagens de fábrica (Nexus 7, ambos)

0xC0000022L
fonte