7 votes

`adb backup` ne fonctionne pas même avec `allowBackup=true` (par exemple Chrome)

J'ai remarqué que pour certaines applications système (par exemple Chrome, qui est préinstallé par défaut sur mon appareil), je ne peux pas faire adb backup. En le faisant, cela donne le fichier .ab fictif de 47 octets. J'ai vérifié dans le manifeste et ils ont allowBackup="true".

Par exemple, pour Chrome, le contenu du manifeste est

allowBackup="true"
backupAgent="org.chromium.chrome.browser.ChromeBackupAgent"
extractNativeLibs="false"
fullBackupOnly="false"

Pourquoi cela se produit-il ? Comment puis-je sauvegarder les données de telles applications sans root ?

P.S. Helium Backup ne montre pas les applications système.

4voto

pr0nin Points 353

J'ai trouvé la raison dans logcat en effectuant une sauvegarde :

BackupManagerService: Package com.android.chrome est key-value.

Par défaut, pour abd backup, les sauvegardes key-value sont désactivées :

"/system/bin/bu" (la commande appelée sur l'appareil par adb backup) texte d'aide : 

 -keyvalue|-nokeyvalue: inclure les applications qui effectuent des sauvegardes key/value.
     (par défaut -nokeyvalue)

Par conséquent, vous devez inclure l'option -keyvalue pour créer une sauvegarde de Chrome :

adb backup -keyvalue -f chrome.ab com.android.chrome

Cela crée un fichier de sauvegarde contenant uniquement les paramètres de Chrome (pas de fichiers cache, cookies, données locales, ...)

1 votes

Y a-t-il moyen de savoir avant l'échec de la sauvegarde que ce paramètre est nécessaire? Ou est-il sûr de toujours le fournir au cas où, et les applications "normales" seront toujours sauvegardées comme d'habitude?

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