pull / dados adb falham

19

Enraizei meu dispositivo HTC Evo Design 4G e tento adicionar dados de extração / dados e ele diz "0 arquivo extrai 0 arquivo ignorado"

Consegui puxar /System/build.prop. Como posso puxar pasta raiz.

Obrigado iua

user3734225
fonte
1
Você correu adb rootprimeiro?
onik 4/07/14
Sim, mas o adb root não foi um sucesso. Sem permissão. Mas eu poderia adb shell su. Dá #.
User3734225

Respostas:

20

Os arquivos e diretórios abaixo /data/dataestão protegidos do "usuário comum", portanto, você não pode simplesmente "puxá-los", a menos que o daemon ADB esteja em execução no modo raiz. Além do arquivo ao qual você estava se referindo ( /system/buildpropé pelo menos legível por todos os aplicativos), as pastas abaixo /data/datasão "invisíveis" (exceto para raiz), portanto, elas nem podem ser lidas.

Para poder usá adb pull-los, é necessário primeiro executar o daemon do ADB no modo raiz. Dependendo do dispositivo, um simples adb rootcomando pode fazer isso - mas a maioria dos dispositivos se recusará a fazer. Nesses casos, você pode usar o adbd do chainfire inseguro : instale este aplicativo no seu dispositivo, inicie-o lá e alterne manualmente para o modo "inseguro". Agora o pulldeve ter sucesso.

Observação: é chamado de "inseguro" porque rodar adbdcomo root permite que todos com um computador e um cabo USB tenham acesso a tudo no seu dispositivo. Apenas no caso de você se perguntar.

Izzy
fonte
Thamk você! Além do adbd chainfire inseguro, Posso definir o sinalizador ro.secure na propriedade build? Posso usar o adb shell setprop ro.secure 0?
user3734225
Eu nunca tentei isso, nem sei exatamente para que serve essa bandeira - então não sei dizer. (Btw: se você encontrou a resposta útil, você é bem-vindo "upvote" ele (o modo SE para dizer "obrigado") - ou "aceitar"-lo quando ele resolveu nosso problema;)
Izzy
1
adbd trabalho precário para mim :)
user3734225
6

Se o seu telefone estiver enraizado, há três maneiras de contornar isso. O primeiro é usar ADBD inseguro .

O outro é movê-lo para outra pasta com raiz e depois puxá-lo de lá:

$ adb shell

shell@android:/ $ su
root@android:/ # mkdir /sdcard/data
root@android:/ # cp /data/data/* /sdcard/data
root@android:/ # exit
shell@android:/ $ exit 

$ adb pull /sdcard/data .
$ adb shell

shell@android:/ $ rm -r /sdcard/data/
shell@android:/ $ exit

Eu acho que você pode criar um script como:

echo 'echo "mkdir /sdcard/data; cp $1/* /sdcard/data; exit" | su; exit' | adb shell
adb pull /sdcard/data .
echo 'rm -r /sdcard/data; exit' | adb shell

e salve em algum lugar.

Finalmente, a terceira opção é chmod -R 1777 /data/data, mas isso é muito mais inseguro, por isso é altamente desencorajado.

Juan
fonte
Posso perguntar a que $1/*se refere? É o /data/datadiretório?
Emen
resposta maravilhosa
Dan Bradbury
5

Você não pode extrair a pasta de dados diretamente, pois o adb não tem acesso à lista de arquivos. Se você deseja puxar a pasta / data, pode fazê-lo através da recuperação ([Recuperação personalizada, CWM / TWRP] execute adb enquanto o dispositivo estiver no modo de recuperação, espero uma recuperação personalizada). Ou como root, copie / dados para outro diretório (sdcard) e retire-o de lá.

Hiemanshu Sharma
fonte
Obrigado. Mas consegui puxar o arquivo build.prop na pasta / System. adb shell su e então eu posso listar arquivos na pasta raiz. Eu li em uma configuração de pesquisa do Google a propriedade ro.secure build para 0, para ajudar a extrair / dados. Isso é verdade? Se sim, existe uma maneira de fazer isso?
user3734225
Você pode puxar o build.prop porque / system possui permissão de listagem. Você pode alterar ro.secure = 0 no seu boot.img, mas essa é uma etapa realmente complexa. Seria mais fácil instalar uma recuperação personalizada e fazer a partir daí.
Hiemanshu Sharma
Muito obrigado! Meu principal objetivo do esforço é implementar um aplicativo forense relacionado como um projeto de final de ano universitário. Sinto muito, instalar a recuperação personalizada acabará com as evidências do dispositivo. Você tem alguma idéia sobre o assunto?
user3734225
Adicionando ao meu comentário anterior - Qual é a utilidade do adb shell setprop? Não posso usá-lo neste caso?
user3734225
1
Um programa de recuperação forense que depende do telefone ser rooteado e com a depuração ativada não parece muito útil.
Dan Hulme
1

PARTE I: Preparando todos os arquivos para ADB PULL

Foi o que funcionou para mim: * Verifique se você está usando a versão mais recente do ADB.

  • Inicie a sessão do ADB:

'infocus $ adb shell'

  • Obtenha direitos SU uma vez na sessão do ADB, tudo o que você precisa fazer é digitar "su" da seguinte maneira:

'shell @ m1: / $ su'

Então você notará que o "$" se torna "#", assim:

'root @ m1: / #'

-O hash permite que você saiba que está no modo SU.

  • Crie uma pasta no / sdcard do dispositivo

'root @ m1: / # mkdir / sdcard / data /'

* vá para a raiz do arquivo que deseja copiar -Por exemplo, eu queria fazer um backup / cópia dos meus aplicativos e armazená-lo no meu computador para:

'root @ m1: / data / app #'

  • Um exemplo do que recebo se "ls" essa pasta:

'root @ m1: / data / app # ls
com.abtnprojects.ambatana-1
com.acr.rootfilemanager-1
com.amazon.kindle-1
com.android.chrome-1
com.android.mms-1
com.android. vending-2 '

  • Para copiar recursivamente com o comando "cp" do ADB, use a opção "-R" e como eu queria copiar tudo, usei o curinga "*" da seguinte forma:

'root @ m1: / data / app # cp -R * / / sdcard / data /'

  • Depois que você pressionar enter, se o arquivo for razoavelmente grande, obviamente levará um tempo para copiá-los; assim, o cursor piscará um pouco, parecerá que, se não estiver fazendo nada, MAS É! está copiando os arquivos, então não entre em pânico! e não pare o processo !!! -Se você deseja apenas abrir outra sessão do shell do ADB e ir para a pasta onde está transferindo os arquivos, faça uma verificação "ls" e verá que a pasta vazia está sendo preenchida com os arquivos. Depois que a transferência estiver concluída, você recuperará seu shell.

  • Vá para "sdcard / data" e verifique se tudo foi copiado "ls":

'root @ m1: / sdcard / data # ls
com.abtnprojects.ambatana-1
com.acr.rootfilemanager-1
com.amazon.kindle-1
com.android.chrome-1
com.android.mms-1'

PARTE II: ADB PULL

  • A essa altura, se você não criou uma pasta na máquina de destino, faça-o. Criei convenientemente uma pasta chamada "apps"

  • Agora, vamos fazer o esquivo ADB recursivo indescritível de todos os arquivos de uma vez: -Verifique se você está desconectado da sessão do ADB, já que estamos no modo SU, precisamos sair duas vezes:

'root @ m1: / sdcard / data # exit
' shell @ m1: / $ exit '

  • Em uma sessão normal do shell, execute o "adb pull", você não precisa usar a opção "-a", eu pessoalmente a uso para manter a integridade dos arquivos o máximo possível. - execute o comando:

'AtomicusZro $ adb pull -a / sdcard / data / apps /'

Você deve ver algo assim:

'[69%] /sdcard/data/com.google.android.gms-1/base.apk: 74%'

Uma vez feito:

'/ sdcard / data /: 296 arquivos puxados. 5,1 MB / s (1193942288 bytes em 221.352s) '

E Voila!

Notas:
Não sei se importa, mas eu uso um Mac.
.Se durante a sessão do ADB, você também não pode obter "su privilégios":
1º: você provavelmente precisará conceder acesso root ao ADB;
2º: "superusuário" não está instalado corretamente
.

Boa sorte.-

AtomicusZro
fonte
Não preciso estar enraizado para isso?
neverMind9
0

trabalhando no meu dispositivo Android 7.1. etapas para fazê-lo funcionar:

  1. faça o download da versão insegura do adbd por leroy em https://nofile.io/f/86605d8qsJs/adbd-Insecure-v2.00.apk
  2. instale no seu telefone.
  3. execute o shell adb no seu diretório adb
  4. digite "su" para que você possa obter o "#"
  5. digite "setenforce 0"
  6. ativar adbd inseguro. a depuração usb desativa
  7. ativar e desativar a depuração usb nas opções do desenvolvedor
  8. ative e desative novamente o adbd inseguro.

agora você pode adb puxar para o seu pc.

Espero que isto ajude


Haris

Haris Cheong
fonte