Vários backups / restauração individuais consecutivos do ADB sem aviso prévio

8

Eu estava estudando como fazer backups em lote através de comandos individuais de backup / restauração adb (para ter arquivos .ab separados por pacote / aplicativo / dados / etc.) (Conheço o aplicativo de desktop Helium (Carbon) como uma opção para isso - estaria interessado em escrever meu próprio roteiro por diversão de qualquer maneira).

O motivo para querer criar arquivos .ab individuais versus um grande é que desejo ter uma funcionalidade parcial de backup / restauração para pacotes individuais e não ter que fazer, por exemplo, 50 aplicativos de uma só vez.

O principal obstáculo no momento é que toda vez que um backup / restauração ocorre, a entrada do usuário deve ser fornecida quando o prompt aparecer - existe uma maneira de contornar isso para poder usar o backup / restauração adb para vários pacotes individuais por meio de algo como um script de shell?

Obrigado!

mediantis
fonte

Respostas:

2

Você pode tentar usar adb shell input tap <x> <y>onde xey são as coordenadas de onde você gostaria de tocar na tela (pode mostrar as cordas nas Opções do desenvolvedor). Consegui usar esse código para restaurar um backup individual:

#$1 is backup file

adb restore ${1} &
sleep 2
adb shell input touchscreen tap <x> <y>
wait

Achei útil dormir alguns segundos após o comando restore, mas pode não ser necessário.

PNMNS
fonte
1

Portanto, parece que não há uma maneira integrada e (pelo menos aparentemente) pretendida para fazermos isso.

Em vez disso, isso é possível através do adb shell sendeventcomando - isso pode simular a entrada por toque de um computador com as ferramentas adb (e quaisquer drivers relevantes) instalados, desde que o telefone tenha fornecido acesso adb a essa máquina específica.

Os eventos podem ser gravados usando adb shell getevente reproduzidos com adb shell sendevent. Um usuário pode gravar o pressionamento do botão de aceitação e salvar um script que o repita. Obviamente, isso apresenta problemas como quando há uma sobreposição de tela (por exemplo, nos aplicativos de iluminação do turno vermelho) impedindo o pressionamento do botão, se algo mais aparecer (talvez um balão de bate-papo etc.) e qualquer outro número de obstruções, por isso é uma solução alternativa, na melhor das hipóteses.

mediantis
fonte
0

isso parece particularmente estranho, mas dessa maneira esperada do Google. Do meu próprio entendimento incompleto, mas crescente, das coisas, você pode converter o arquivo de restauração em um arquivo tar alterando os primeiros 24 bytes. Portanto, a questão é: uma extração simples de alcatrão de uma maneira específica (remontando algo ou outro rw temporariamente?) Realizaria a mesma coisa que a restauração adb está fazendo? É claro que a fonte está teoricamente presente. Eu estava pensando em tentar as coisas eventualmente e ver se elas parecem funcionar o suficiente para justificar não se importar o suficiente para procurar por essa fonte. Sim, esta é uma resposta bastante ruim, mas parece valer a pena como um espaço reservado até que um pequeno script de shell adb com invocação de tar ou algo parecido ocorra, que é o que eu presumo que o questionador original e gostaria de ver.

Covarde anônimo
fonte