4 votes

Sauvegarde et restauration des données de l'application via adb

J'ai une application installée sur mon ancien téléphone avec beaucoup de paramètres et de données que je veux transférer sur mon nouveau téléphone. J'ai donc essayé d'utiliser adb backup :

$ sudo adb backup -f org.secuso.privacyfriendlynotes.ab -apk
org.secuso.privacyfriendlynotes
WARNING: adb backup is deprecated and may be removed in a future release
Now unlock your device and confirm the backup operation...

Ce qui a bien fonctionné :

$ ls -la
...
-rw-r-----.  1 root   root   5057212 Jul 16 10:59 org.secuso.privacyfriendlynotes.ab

Mais ensuite, pour importer les données sur mon nouveau téléphone, j'ai essayé d'utiliser adb restore :

sudo adb restore org.secuso.privacyfriendlynotes.ab
WARNING: adb restore is deprecated and may be removed in a future release
Now unlock your device and confirm the restore operation.

J'ai déverrouillé et confirmé et le téléphone a dit "Restore starting..." et ensuite "Restore ended", donc tout semble bien aller. Mais les données n'ont pas été restaurées.

Comparaison de /data/data/org.secuso.privacyfriendlynotes sur les deux téléphones montre clairement que mes données n'ont pas été restaurées du tout.

Je réalise que abd backup y adb restore sont dépréciés. Quelles sont les alternatives maintenant ? (Je ne veux pas utiliser Titanium Backup, etc. Je n'utilise que des logiciels libres).

Existe-t-il un autre moyen officiel de procéder à cette opération ?

1voto

Forivin Points 317

La seule solution de contournement à laquelle j'ai pensé était une combinaison de adb pull , adb push , restorecon y chown :

APP_ID="org.secuso.privacyfriendlynotes"

# Backup (RUN WITH OLD PHONE CONNECTED)
adb pull "/data/data/${APP_ID}"

# Restore (RUN WITH NEW PHONE CONNECTED)
APP_OWNERSHIP=$(adb shell stat --format "%U:%G" "/data/data/${APP_ID}")
adb shell mv "/data/data/${APP_ID}" "/data/data/${APP_ID}_backup"
adb push "./${APP_ID}" "/data/data/${APP_ID}"
adb shell restorecon "/data/data/${APP_ID}"
adb shell chown -R "${APP_OWNERSHIP}" "/data/data/${APP_ID}"
#adb shell rm -rf "/data/data/${APP_ID}_backup"

Il faut cependant une racine.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X