J'ai réussi à faire une sauvegarde adb de mon téléphone en me basant sur la réponse de @sameer. Cependant, comme indiqué dans les commentaires, vous devez confirmer la sauvegarde à l'aide de l'écran après avoir exécuté la commande adb backup
commandement.
Il faut donc tout d'abord que vous ayez adb
installés. Assurez-vous que votre appareil apparaît et qu'il est autorisé :
# adb devices
List of devices attached
EP732284Z8 device
Exécutez ensuite adb shell input
pour s'assurer que les commandes que nous allons utiliser sont présentes. Vous devriez voir quelque chose comme ça :
# adb shell input
Usage: input [<source>] <command> [<arg>...]
The sources are:
mouse
keyboard
joystick
touchnavigation
touchpad
trackball
stylus
dpad
touchscreen
gamepad
The commands and default sources are:
text <string> (Default: touchscreen)
keyevent [--longpress] <key code number or name> ... (Default: keyboard)
tap <x> <y> (Default: touchscreen)
swipe <x1> <y1> <x2> <y2> [duration(ms)] (Default: touchscreen)
press (Default: trackball)
roll <dx> <dy> (Default: trackball)
Ensuite, nous installerons TouchControl de pouvoir voir ce qui se passe à l'écran. Cela ne fonctionnera pas si votre appareil n'est pas déjà en mode de débogage USB et autorisé (c'est-à-dire si vous voyez "unauthorized" ou "offline" après avoir exécuté la première commande). J'ai installé la version Linux. J'ai dû installer boost pour que cela fonctionne. Cela devrait fonctionner sous Windows également.
Nous devons déverrouiller l'appareil. Pour cela, nous utiliserons "adb shell input swipe [x1] [y1] [x2] [y2] [duration]" avec (x1, y1, x2, y2) en fonction de votre appareil et la durée peut être de 250 (en ms). À titre de référence, vous pouvez consulter les chiffres dans ce dossier (recherchez "shell input swipe"). Dans mon cas, la résolution de mon appareil est de "1920x1080", j'ai donc regardé la partie qui disait " if (i.toStdString() == "1080x1920") {
. Ce code effectue un balayage de gauche à droite. J'ai besoin de déverrouiller mon appareil en glissant de bas en haut, j'ai donc utilisé (300, 1100, 300, 950) avec une durée de 300, c'est-à-dire "adb shell input swipe 300 1100 300 950 300". Vous devrez expérimenter avec les valeurs et voir ce qui change sur l'écran "virtuel" pour obtenir un résultat correct. Dans mon cas, (0, 0) était en haut à gauche et (300, 1100) en bas au milieu.
Si vous disposez d'un mot de passe ou d'un code PIN, vous pouvez le saisir en utilisant la fonction adb shell input text "<yourpasswordhere>"
. Si vous avez un modèle, vous devrez déterminer les coordonnées de chaque point et créer votre modèle à l'aide de adb shell swipe
commandes. (Bonne chance, cela prendra du temps). Sinon, vous pouvez essayer des applications de contournement du verrouillage de l'écran et les installer via adb install
. Je n'ai rien eu de tout cela, donc je ne sais pas ce qui fonctionnera pour vous.
Exécutez maintenant le adb backup
commandement :
# adb backup -apk -shared -obb -all -system -f ./android-backup.ab
Now unlock your device and confirm the backup operation.
Vous obtiendrez alors un écran comme celui-ci (cliquez sur l'image pour l'agrandir) :
Nous allons donc appuyer deux fois sur la touche "TAB" pour atteindre le bouton "SAUVEGARDE DE MES DONNÉES", puis appuyer sur "ENTRÉE" pour confirmer. En fait, d'après les chiffres dans cette réponse :
adb shell input keyevent 61
adb shell input keyevent 61
adb shell input keyevent 66
Votre sauvegarde a commencé. Bravo !
P.S. Pour voir la progression de votre mise à jour, vous pouvez regarder la taille du fichier augmenter. Sous Linux, vous pouvez lancer une commande comme celle-ci : watch -n 5 "du -h ./*.ab"
o watch -n 5 "du --time -m ./*.ab"
P.P.S. Vous pouvez utiliser une commande comme adb shell input swipe 300 0 300 950 300
pour ouvrir votre tiroir de notification et abd shell input tap [x1] [y1]
pour appuyer sur les notifications puis adb shell text [sometext]
à écrire. Et vous pouvez utiliser adb shell input keyevent [61|66]
d'appuyer sur pratiquement n'importe quoi sans connaître leurs coordonnées.
P.P.P.S. Je suis sur un Xpreria ZR fonctionnant sous "10.7.A.0.222" Android version 5.1.1. Vos commandes exactes peuvent varier en fonction de la résolution de votre écran et de la version d'Android (par exemple, la façon de déverrouiller est différente, le nombre de fois où il faut appuyer sur la touche TAB est différent, etc.)
J'espère que cela vous aidera !