Merci à @Firelord pour m'avoir généreusement aidé lorsque je suis sorti de mes gonds. La description du problème et les notes sur les solutions ont été faites en utilisant ses commentaires comme référence.
Problème :
C'est parce qu'après avoir émis adb shell
vous êtes dans le shell système d'Android et ne pouvez pas utiliser la fonction adb pull
plus, car le binaire ADB client que vous avez invoqué existe sur votre PC de développement, et non sur le périphérique connecté lui-même. L'appareil agit comme un serveur et le PC de développement comme un client. Le client émet les commandes et le serveur y répond. Le serveur lui-même ne peut pas émettre de commande.
L'ADB sur l'appareil lui-même peut également faire office de client, avec deux réserves :
- ADB d'un appareil vers le même appareil nécessite que ADB fonctionne en mode sans fil et en mode bouclage.
- L'autre appareil, supposé être le "serveur", doit initialement être connecté via OTG à l'appareil client ADB (plus tard client & serveur) afin que ADB puisse y être redémarré en mode sans fil.
TL;DR
Si vous êtes en train de courir adb
de la platform-tools
du répertoire d'installation du SDK Android, essayez d'émettre ./adb pull
au lieu de adb pull
dans le cas où vous êtes sous Linux, et, je suppose, similaire avec Windows. ADB n'est probablement pas dans votre variable PATH. Le terminal se souvient de l'historique du dossier 1 niveau plus bas, et le dossier local par défaut n'est pas inclus dans la variable PATH.
SOURCE : Ce site sur StackOverflow.
Résolution :
Ce que vous devez faire après le chmod
La commande est entrée exit
suivi par adb pull...
. Le site exit
devrait vous faire sortir de l'interpréteur de commandes du système pour revenir au terminal/à l'invite dans lequel vous utilisiez adb sur votre PC, d'où vous pourrez utiliser en toute sécurité la commande adb pull
.
Résolution alternative :
Vous pouvez également utiliser cp
au lieu de adb pull
après chmod
pour copier le fichier de la base de données. Ils ont le même modèle d'utilisation, et cp
est bien disponible dans la session shell.
Notes :
-
J'ai un petit problème avec la manière dont vous utilisez adb pull
pour copier les fichiers de votre /data/data
sur votre carte SD, ce qui pourrait facilement être accompli avec un explorateur de racines ou cp
dans une session shell.
-
Assurez-vous que vous avez émis adb root
avant cet ensemble de commandes sous Résolution : pour que le démon adb fonctionne en tant que Root et puisse accéder à /data
et ses sous-répertoires.
PS:
D'après le commentaire de @Firelord, adb root
ne fonctionnera que si vous avez défini l'option ro.secure
dans votre build.prop
a 0
au lieu de 1
, donde 1
est généralement la valeur par défaut, à l'exception de certaines ROMs personnalisées permettant le débogage. Dans ce cas, prenez le cp
alternative.
- J'ai personnellement été confronté à ce problème et j'ai évité de mélanger les sessions ADB et shell à partir de ce moment-là.
1 votes
Vous ne pouvez pas les exporter depuis l'application Contacts ?