Teve exatamente o mesmo problema recentemente (no Nexus S de um amigo, executando o Android 4.0 com uma tela e digitalizador e adb completamente quebrados desativados):
Obtenha um sistema de recuperação em execução com o adb ativado. Em seguida, use o console adb para acessar os dados do dispositivo e criar um backup. No Nexus S, você não pode usar o sdcard para obter os dados do dispositivo, portanto, é necessário usar o adb para isso.
Pré-requisitos:
- Telefone faz ter o modo fastboot com inicialização comando habilitado
- O telefone ainda funciona (exceto a tela)
- SDK instalado (com executáveis adb + fastboot em funcionamento)
- Imagem de recuperação do CWM baixada para /tmp/cwm.zip (ativou adb quando iniciado)
- Linux com uudecode instalado (parte do pacote 'sharutils' no Ubuntu)
Como fazer:
a) Inicie o dispositivo no modo de inicialização rápida e inicialize a recuperação do CWM dessa maneira
me@workstation:~$ fastboot boot /tmp/cwm.zip
b) aguarde algum tempo até que o CWM seja inicializado e faça o login no dispositivo
me@workstation:~$ adb shell
shell@android:/ $ mkdir -p /tmp/backup/data /tmp/backup/sdcard
Substitua DATA_DEV e SDCARD_DEV pelos nomes reais dos dispositivos,
dependendo do seu telefone, provavelmente é um deles:
- DATA_DEV:
/dev/block/mtdblock*
- SDCARD_DEV:
/dev/block/mmcblk*
use o df
comando para encontrar candidatos por tamanho.
shell@android:/ $ mount -oro <DATA_DEV> /tmp/backup/data
shell@android:/ $ mount -oro <SDCARD_DEV> /tmp/backup/sdcard
shell@android:/ $ exit
me@workstation:~$ adb shell tar czf - /tmp/backup \| uuencode foo | uudecode -o - > /tmp/backup.tar.gz
Advertências e explicações adicionais:
- Por que
uuencode
? O console do ADB parece interceptar o fluxo de dados e, obviamente, insere um retorno de carro antes de cada alimentação de linha única . A codificação dos dados antes de transmiti-los pelo stdout do adb protege contra isso.
- Será que não funciona em dispositivos criptografados
- Você também pode repetir o processo em dispositivos não montados e transmitir todos
/dev/block/*
por um e descobrir qual é o que mais tarde
- Você precisa encontrar uma imagem de recuperação CWM adequada