Più backup / ripristino ADB individuali consecutivi senza prompt


8

Stavo esaminando come eseguire backup batch tramite singoli comandi di backup / ripristino adb (per avere file .ab separati per pacchetto / applicazione / dati / ecc.) (Sono a conoscenza dell'app desktop Helium (Carbon) come opzione per questo - sarebbe comunque interessato a scrivere la mia sceneggiatura per divertimento).

Il motivo per voler creare singoli file .ab rispetto a uno di grandi dimensioni è che desidero poter disporre di funzionalità di backup / ripristino parziali solo per singoli pacchetti e non dover fare, ad esempio, 50 app contemporaneamente.

L'ostacolo principale al momento è che ogni volta che si verifica un backup / ripristino, l'input dell'utente deve essere fornito quando viene visualizzato il prompt - c'è un modo per aggirare questo per poter utilizzare il backup / ripristino adb per più singoli pacchetti attraverso qualcosa come uno script di shell?

Grazie!

Risposte:


2

Puoi provare a usare adb shell input tap <x> <y>dove xey sono le coordinate di dove vuoi toccare lo schermo (puoi mostrare i coords in Opzioni sviluppatore). Sono stato in grado di utilizzare questo codice per ripristinare un singolo backup:

#$1 is backup file

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

Ho trovato utile dormire un paio di secondi dopo il comando di ripristino, ma potrebbe non essere necessario.


1

Quindi, sembrerebbe che non ci sia un modo integrato e (almeno apparentemente) inteso per noi di farlo.

Invece, questo è possibile tramite il adb shell sendeventcomando: questo può emulare l'input tocco da un computer con gli strumenti adb (e tutti i driver pertinenti) installati, a condizione che il telefono abbia fornito l'accesso adb a quella macchina specifica.

Gli eventi possono essere registrati usando adb shell getevente riprodotti con adb shell sendevent. Un utente potrebbe quindi registrare le pressioni del pulsante di accettazione e salvare uno script che le riproduce. Naturalmente, questo introduce problemi come quando c'è una sovrapposizione dello schermo (ad esempio da app di illuminazione a spostamento rosso) che impedisce la pressione del pulsante, se appare qualcos'altro (forse una bolla di chat, ecc.) E qualsiasi altro numero di ostacoli, quindi è una soluzione al massimo.


0

questo sembra particolarmente strano, ma in quel modo google malvagio previsto. Dalla mia comprensione incompleta ma crescente delle cose, è possibile convertire il file di ripristino in un file tar modificando i primi 24 byte. Quindi la domanda è: una semplice estrazione di catrame in un modo particolare (rimontaggio temporaneo di qualcosa o altro rw?) Compirebbe la stessa cosa che sta facendo il ripristino adb? Naturalmente la fonte è teoricamente tutta lì. Stavo pianificando di provare le cose alla fine e vedere se sembrano funzionare abbastanza bene da giustificare non preoccuparsi abbastanza per scavare attraverso quella fonte. Sì, questa è una risposta piuttosto scadente, ma sembra utile come segnaposto fino a quando un piccolo script di shell adb con invocazione tar o simili prende il suo posto, che è quello che presumo sia l'interrogatore originale e che vorrei vedere.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.