Sauvegarde / restauration ADB individuelle consécutive multiple sans invite

8

Je cherchais comment faire des sauvegardes par lots via des commandes de sauvegarde / restauration adb individuelles (pour avoir des fichiers .ab séparés par package / application / data / etc.) (Je connais l'application de bureau Helium (Carbon) comme option pour ceci - serait intéressé à écrire mon propre script pour le plaisir de toute façon).

La raison pour laquelle je souhaite créer des fichiers .ab individuels par rapport à un fichier volumineux est que je veux pouvoir avoir une fonctionnalité de sauvegarde / restauration partielle pour des packages individuels uniquement, et ne pas avoir à faire, par exemple, 50 applications en même temps.

Le principal obstacle pour le moment est que chaque fois qu'une sauvegarde / restauration se produit, une entrée utilisateur doit être donnée lorsque l'invite s'affiche - existe-t-il un moyen de contourner cela pour pouvoir utiliser la sauvegarde / restauration adb pour plusieurs packages individuels via quelque chose comme un script shell?

Merci!

mediantis
la source

Réponses:

2

Vous pouvez essayer d'utiliser adb shell input tap <x> <y>où x et y sont les coordonnées de l'endroit où vous souhaitez appuyer sur l'écran (peut afficher les coordonnées dans les options du développeur). J'ai pu utiliser ce code pour restaurer une sauvegarde individuelle:

#$1 is backup file

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

J'ai trouvé utile de dormir quelques secondes après la commande de restauration, mais ce n'est peut-être pas nécessaire.

PNMNS
la source
1

Il semblerait donc qu'il n'y ait aucun moyen intégré et (du moins apparemment) prévu pour nous de le faire.

Au lieu de cela, cela est possible via la adb shell sendeventcommande - cela peut émuler la saisie tactile à partir d'un ordinateur avec les outils adb (et tout pilote pertinent) installés, à condition que le téléphone ait fourni un accès adb à cette machine spécifique.

Les événements peuvent être enregistrés adb shell geteventet rejoués avec adb shell sendevent. Un utilisateur peut alors enregistrer les pressions sur les boutons d'acceptation et enregistrer un script qui les rejoue. Bien sûr, cela introduit des problèmes tels que lorsqu'il y a une superposition d'écran (par exemple, des applications d'éclairage à décalage rouge) empêchant d'appuyer sur le bouton, si quelque chose d'autre apparaît (peut-être une bulle de chat, etc.), et tout autre nombre d'obstructions, il est donc une solution de contournement au mieux.

mediantis
la source
0

cela semble particulièrement étrange, mais de la manière maléfique attendue de Google. De ma propre compréhension incomplète mais croissante des choses, vous pouvez convertir le fichier de restauration en un fichier tar en changeant les 24 premiers octets. Alors la question est, est-ce qu'une simple extraction tar d'une manière particulière (remonter temporairement quelque chose ou autre rw?) Accomplirait la même chose que la restauration adb fait? Bien sûr, la source est théoriquement toute là. J'avais l'intention d'essayer les choses par la suite et de voir si elles semblent fonctionner assez bien pour justifier de ne pas se soucier suffisamment de creuser dans cette source. Oui, c'est une réponse assez merdique, mais cela semble utile en tant qu'espace réservé jusqu'à ce qu'un petit script shell adb avec tar invokage ou similaire prenne sa place, ce que je présume que l'interrogateur d'origine et j'aimerais voir.

Lâche anonyme
la source