51 votes

La sauvegarde ADB crée un fichier de 0 octet; demande le mot de passe de sauvegarde actuel même si je n'en ai jamais défini un; "Échec de la définition du mot de passe" pour le mot de passe

Le problème :

Chaque fois que j'exécute une sauvegarde ADB, je reçois un message près du bas de l'écran d'accueil disant Démarrage de la sauvegarde..., suivi d'un message disant Sauvegarde terminée quelques secondes plus tard, malgré le fait que j'utilise 17 Go de mémoire sur l'appareil, et que le fichier de sauvegarde résultant est créé avec une taille de 0 octets. Je ne reçois aucun message d'erreur, aucun retour d'information indiquant que quelque chose ne va pas, encore moins ce qui ne va pas. Il semble fonctionner, mais beaucoup trop rapidement, et le fichier de sauvegarde est vide.

Le processus :

  1. Je confirme que l'appareil est reconnu par ADB en utilisant la commande adb devices, et reçois la sortie suivante :

    List of devices attached
    8e1f368a        device
  2. Je lance la commande de sauvegarde ADB (détails à suivre).

  3. Je reçois le message suivant dans l'invite de commande :

    Déverrouillez maintenant votre appareil et confirmez l'opération de sauvegarde.

    ...et la demande suivante sur le téléphone :

    entrer la description de l'image ici

    Cela n'a aucune importance ce que je fais ici (détails à suivre).

  4. Je touche le bouton Sauvegarder mes données (coin inférieur droit).

  5. Le téléphone revient à l'écran d'accueil et affiche le message Démarrage de la sauvegarde..., puis le message Sauvegarde terminée quelques secondes plus tard. Un fichier de 0 octet est créé, nommé soit le backup.ab par défaut, soit ce que j'ai spécifié avec l'interrupteur -f.

La commande de sauvegarde ADB (utilisée à l'étape 2) :

J'ai essayé plusieurs combinaisons d'options, allant du plus simple comme

adb backup -all

à des choses comme

adb backup -all -apk -s 8e1f368a -f 'C:\Data Files\PDA\Backups\ADB\GalaxyS4_20140919.ab'

J'ai aussi essayé d'ajouter l'interrupteur -nosystem après avoir lu cela et cela, qui indiquent qu'essayer d'inclure une sauvegarde système sur un appareil non rooté peut résulter en un fichier de 0 octet, et que cet interrupteur doit être utilisé. Cela ne change rien, le processus se termine toujours en quelques secondes et j'obtiens toujours un fichier de 0 octet.

La demande de mot de passe "Sauvegarde complète" (étape 3) :

Je suis assez sûr de n'avoir jamais défini de mot de passe de sauvegarde auparavant. Je n'ai jamais eu l'occasion de définir ce mot de passe ou d'accéder à ce paramètre de quelque manière que ce soit auparavant. Cependant, j'ai essayé toutes les démarches suivantes :

  • Laisser les deux mots de passe vides
  • Laisser le "mot de passe de sauvegarde actuel" vide et entrer un nouveau mot de passe dans la deuxième case
  • Entrer le PIN de verrouillage actuel de l'écran et tous les PIN que j'ai déjà utilisés dans le passé en tant que "mot de passe de sauvegarde actuel".
  • Entrer tous les mots de passe auxquels je peux penser avoir jamais utilisés pour quoi que ce soit sur cet appareil

Dans tous les cas, le comportement est exactement le même que celui décrit à l'étape 5. Je ne reçois aucune erreur ni aucun type d'indication que quelque chose ne va pas ou que mes mots de passe sont invalides, et aucune indication sur le fait qu'il attend réellement un mot de passe actuel ou que ce champ devrait être laissé vide. (La capture d'écran dans cette réponse et plusieurs autres forums d'assistance que j'ai consultés semblent impliquer que la boîte "mot de passe de sauvegarde actuel" ne serait pas affichée s'il n'y a pas de mot de passe actuel, mais c'est juste une inférence ; rien ne précise clairement si un mot de passe actuel est réellement requis.)

Je soupçonne que le mot de passe demandé pourrait être le "mot de passe de sauvegarde de bureau" défini dans les options pour les développeurs :

entrer la description de l'image ici

Je n'ai jamais défini ce mot de passe auparavant. Si j'essaie d'en définir un, je reçois un message disant Impossible de définir le mot de passe de sauvegarde.

En cherchant des informations sur cette erreur, j'ai rencontré au moins un autre cas où quelqu'un ayant ce problème disait que cela l'empêchait d'utiliser la sauvegarde ADB, mais il n'a pas été précis sur ce qui se passe lorsqu'il essaie d'utiliser ADB backup.

La plupart des personnes qui ont reçu ce message sans jamais avoir défini le mot de passe auparavant disent que la solution a été de laisser le mot de passe actuel vide, mais j'ai essayé cela en premier lieu et ça n'a pas fonctionné. J'ai trouvé une question d'une autre personne ayant rencontré ce problème et étant sûr de ne pas avoir défini le mot de passe auparavant. Malheureusement, il semble qu'il n'ait jamais reçu de solution ou même d'explication.

Peu importe que ADB recherche le "mot de passe de sauvegarde de bureau" ou que le mot de passe de chiffrement ADB soit quelque chose de séparé, je me demande pourquoi ADB exigerait que vous saisissiez un mot de passe précédent pour initier une nouvelle sauvegarde. Je n'essaie pas de restaurer, écraser ou accéder de quelque manière que ce soit à des données chiffrées précédemment, donc même si un mot de passe de chiffrement pour une sauvegarde avait été défini auparavant, je ne peux pas imaginer pourquoi quelqu'un penserait que ce serait une bonne idée de vous empêcher de sauvegarder votre appareil si vous ne vous souvenez pas du mot de passe que vous avez utilisé pour chiffrer les sauvegardes par le passé.

Informations supplémentaires :

Modèle : Samsung Galaxy S4 SCH-I545
Version du noyau : 3.4.0
Version du système d'exploitation : 4.4.2
Version des outils Android SDK : 1.16
Le débogage USB est activé.

Notez que ma raison d'utiliser la sauvegarde ADB est de faire une sauvegarde complète de mon téléphone pour être prudent avant de le rooter* afin que je puisse utiliser des outils de sauvegarde nandroid tels que Titanium backup. Donc, toute suggestion impliquant de rooter mon téléphone serait un cercle vicieux, pas une solution. Inutile de dire qu'une réinitialisation aux paramètres d'usine n'est pas non plus une solution, car cela irait à l'encontre de l'objectif de réaliser la sauvegarde.

Le téléphone est configuré pour se synchroniser avec les serveurs Exchange de mon entreprise, et certaines politiques sont appliquées par le serveur. J'avais pensé que l'appareil était chiffré lorsque j'ai configuré la synchronisation avec le compte de l'entreprise, mais apparemment il n'est actuellement pas chiffré. En fait, c'est ce qui a déclenché cette chaîne d'événements : Je reçois un message me disant que je dois chiffrer l'appareil pour continuer à me connecter aux serveurs de l'entreprise. Je veux faire une sauvegarde nandroid avant de chiffrer, ce qui nécessite le root, et je veux utiliser la sauvegarde ADB avant le rootage.


* Oui, je suis conscient que Towelroot est censé être sûr, mais je préférerais ne pas prendre de risques, et j'aimerais résoudre ou du moins comprendre ce problème au cas où des problèmes similaires surviendraient à l'avenir.

0 votes

J'ai eu plusieurs problèmes avec ADB sur l'une de mes tablettes (rootée ou non, dans les deux cas) qui étaient similaires (juste inversés : tandis que adb backup fonctionnait bien, adb restore échouait toujours). Il s'est avéré que c'était un problème de permission (le fabricant avait altéré la ROM), donc adb restore ne pouvait pas lire le fichier de sauvegarde une fois transféré sur l'appareil. C'était un peu délicat à trouver, et je ne suis pas sûr si quelque chose de similaire est vraiment le cas ici ; mais ça vaut peut-être la peine de vérifier.

2 votes

Pour ceux qui se retrouveraient ici avec le même problème de 0 octet : J'ai eu ce problème car j'avais une fois configuré un mot de passe de bureau dans les paramètres et l'avait oublié. Comme l'appareil est rooté, j'ai suivi cette réponse (la mienne) et tout s'est bien passé.

0 votes

Vous pouvez également consulter : code.google.com/p/android/issues/detail?id=47009 - Si vous avez crypté votre téléphone, vous pourriez avoir besoin d'utiliser votre mot de passe de cryptage comme "mot de passe actuel" dans tous les messages d'avertissement : soit dans l'écran de "Sauvegarde complète", soit dans celui du "Mot de passe de sauvegarde sur bureau".

2voto

eee Points 121

Vous devez exécuter la commande de sauvegarde adb sur la version adb 1.0.31.

Pour Windows, j'ai fait :

Journal :

$ adb backup -apk -obb -shared -all -system -f bckp.ab

Le serveur adb est obsolète. Arrêt en cours...

  • daemon démarré avec succès *

Déverrouillez maintenant votre appareil et confirmez l'opération de sauvegarde.

...puis remettez tout en ordre.

1voto

Sorin Mocanu Points 700

D'accord, voici comment j'ai réparé le mien.

J'ai essayé la solution de Hunter Perrin :

adb backup -apk\ -shared\ -all\ -system

Mais il est simplement revenu immédiatement sans erreur, pas d'écran de sauvegarde sur le téléphone.

Après plusieurs essais, cela a fonctionné pour moi :

adb backup -all\

1voto

Catskul Points 111

Je pense avoir une solution pour ceux qui utilisent la version 1.0.32 :

entrez un mot de passe lorsqu'on vous le demande sur l'écran Android

Malgré le fait qu'il dise qu'il utilisera le mot de passe par défaut si vous n'en entrez pas, je crois que ce n'est pas le cas et adb 1.0.32 ne permet peut-être pas la création de sauvegardes non chiffrées.

Entrer un mot de passe a fonctionné pour moi, ensuite j'ai utilisé "Android Backup Extractor" (Avertissement Sourceforge) et "Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy" pour l'extraire dans un fichier tar.

1voto

mow Points 11

J'ai rencontré le problème inverse : 1.0.31 avec un téléphone plus récent (Android 7) échoue également. 1.0.31 utilise : comme séparateur lors du passage d'arguments au téléphone. Comme adb logcat -s BackupManagerService le montre, le nouvel adb sur le téléphone ne peut pas traiter l'ancien style non plus : 02-19 01:59:44.330 1100 9830 W BackupManagerService: Unknown package com.gameloft.android.ANMP.GloftPOHM:-apk, skipping Heureusement, le nouvel adb accepte également les espaces comme séparateur, donc encadrer les arguments entre guillemets fonctionne, par exemple : adb.exe backup "com.gameloft.android.ANMP.GloftPOHM -apk" -f game-backup.ab

1voto

Zak Points 11

Pour moi, le problème était que le nom du package avait été changé, donc adb backup ne le trouvait pas et créait un fichier de sauvegarde vide, sans signaler d'erreur. adb logcat a montré l'erreur. Une fois que j'ai mis à jour le nom du package, adb backup a réussi.

Cela a été fait en utilisant la version 1.0.41 d'ADB, avec un mot de passe de sauvegarde sur le bureau activé.

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