2 votes

Sauvegardes Adb ne sauvegardent pas de données

Je veux réinstaller le système d'exploitation sur mon téléphone OnePlus fonctionnant sous Android 12. Avant de le faire, je voudrais sauvegarder certaines de mes applications qui ne stockent pas leurs données dans le cloud. Le téléphone n'est pas rooté, donc j'ai essayé d'utiliser Helium qui est apparemment mort, mais j'ai quand même essayé. En essayant de l'activer, j'ai découvert que mon téléphone n'était pas reconnu par adb comme un appareil, mais cela a été corrigé en ajoutant le mot de passe de sauvegarde, mais l'application plante juste lors de la tentative de sauvegarde en affichant brièvement ceci : Message d'erreur de Helium

Comme vous pouvez le voir, il clique aussi sur l'option "définir le mot de passe", qui ouvre simplement le bureau. La chose drôle est que je ne pense pas pouvoir désactiver le mot de passe maintenant, donc...

Après que cela n'ait pas fonctionné, j'ai essayé de regarder comment sauvegarder avec ADB dans PowerShell sur mon pc Windows 11, mais il semble avoir des problèmes pour faire des sauvegardes.

Pour lister les fichiers, je fais juste : adb shell pm list packages -f -3

Disons que parmi ceux-ci, j'aimerais sauvegarder celui-ci : package:/data/app/~~yCw1hZQNzK2LConsvhuejg==/com.rovio.BadPiggiesHD-pMe0TFd1aaE5-WduzwZ1Zw==/base.apk=com.rovio.BadPiggiesHD

Il extrait le fichier .apk sans problème avec cette commande :

adb pull "/data/app/~~yCw1hZQNzK2LConsvhuejg==/com.rovio.BadPiggiesHD-pMe0TFd1aaE5-WduzwZ1Zw==/base.apk" ".\BP.apk"

Mais, un peu suspect que ce ne soit que 58Mo alors qu'il devrait être plus proche de 170.

Mais en essayant de faire une sauvegarde avec cette ligne :

adb backup "/data/app/~~yCw1hZQNzK2LConsvhuejg==/com.rovio.BadPiggiesHD-pMe0TFd1aaE5-WduzwZ1Zw==/base.apk=com.rovio.BadPiggiesHD"

génère un fichier de sauvegarde vide backup.ab (littéralement 0B) même si je passe seulement com.rovio.BadPiggiesHD en argument.

J'ai également essayé en suivant les conseils de cet article et en ajoutant des guillemets autour des arguments, donc idéalement je veux quelque chose comme ceci car j'ai besoin à la fois d'un apk et de données :

adb backup "-apk com.rovio.BadPiggiesHD -f C:\Users\name\Desktop\app_backups\

Mais cela se contente de cracher Déverrouillez maintenant votre appareil et confirmez l'opération de sauvegarde. et s'arrête instantanément sans rien faire.

J'ai même essayé :

adb backup "-apk -shared -all -f C:\Users\name\Desktop\app_backups\full_backup.ab"

Je n'ai pas besoin de toutes les applications, mais cela génère également un fichier vide.

Quelle est la cause de ce problème ? Je suis perdu car il n'y a aucun message d'erreur.

1voto

pr0nin Points 353

Passons à vos questions :

Utilisation de la sauvegarde adb sur les appareils Android 12+

adb backup est principalement inutile sur les appareils Android fonctionnant sous Android 12+, il ne fonctionnera que pour les applications qui ont été développées et publiées avant Android 12.

Pour les applications ciblant Android 12 (niveau API 31) ou supérieur, lorsque l'utilisateur exécute la commande adb backup, les données de l'application sont exclues de toutes les autres données système exportées depuis l'appareil.

Pour plus de détails, consultez ma réponse à Adb backup/restore fonctionne-t-il toujours car il est indiqué comme obsolète ?

Le fichier APK récupéré via adb est un peu petit

Cependant, il est un peu suspect qu'il ne fasse que 58 Mo alors qu'il devrait faire plutôt 170. adb pull "/data/app/~~yCw1hZQNzK2LConsvhuejg==/com.rovio.BadPiggiesHD-pMe0TFd1aaE5-WduzwZ1Zw==/base.apk" ".\BP.apk"

Sur les appareils Android récents, les applications ne sont pas téléchargées depuis le Google Play Store sous forme d'un seul fichier APK, mais sous forme d'un ensemble de fichiers APK fractionnés. Vous pouvez le voir avec la commande adb shell pm path com.example.someapp car elle affichera plusieurs fichiers APK pour une seule application. Vous avez besoin de tous, sinon l'application ne fonctionnera pas.

Pour savoir comment extraire les fichiers APK fractionnés d'un appareil, consultez la question Comment obtenir un fichier APK fractionné depuis un appareil via adb?

adb backup adb backup /data/app//base.apk ne fonctionne pas

La commande adb backup n'accepte en argument que des noms de packages d'applications, jamais un chemin vers un fichier sur l'appareil. Par conséquent, cette commande ne fonctionnera jamais.

Sauvegarder tout (données+applications) via adb crée un fichier vide

Si vous exécutez une commande comme adb backup "-apk -shared -all -f backup.ab et qu'elle crée un fichier vide, il se pourrait que le binaire de sauvegarde bu soit buggé ou manquant sur votre appareil.

Si vous exécutez une commande comme adb backup , une connexion adb sera établie et sur l'appareil la commande bu sera exécutée. J'ai vu des appareils où la commande bu était simplement défectueuse. Vous pouvez le tester en ouvrant vous-même un adb shell puis en essayant d'exécuter bu --help. Si cela affiche un message d'erreur ou peut-être même /system/bin/sh: bu: inaccessible or not found, alors adb backup ne peut pas fonctionner sur votre appareil.

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