Copier des fichiers d'un smartphone Android depuis Windows, via ADB

  • Réponses :4
  • Sticky
skyrail
  • Posts de Forum 3 842

16 nov. 2019 à 20:58:57 via site

Bonjour,
Qui n'a pas rêvé d'accéder à son système de fichiers Android depuis Windows en ligne de commande?
ça peut être très utile aussi quand il est démarré en mode recovery. il faut alors le brancher sur un port USB du PC.
Dans l'autre cas (Android est démarré), on peut soit le brancher via USB, soit y accéder en wifi.

Deux liens utiles pour la marche à suivre:
https://lecrabeinfo.net/installer-adb-fastboot-pilote-google-usb-windows-15-secondes.html
https://android.jlelse.eu/wireless-debugging-through-adb-in-android-using-wifi-965f7edd163a

connexion via USB
- démarrer l'appareil
- brancher l'appareil avec le cable usb
- détecter l'appareil par adb: adb devices
Au préalable, il faut activer l'option ADB sur l'appareil
=> /paramètres/options développeur/Débogage/Débogage Android ON

connexion via WIFI
- démarrer l'appareil
- activer le wifi, choisir le même réseau que le PC
- activer l'option ADB sur l'appareil
=> /paramètres/options développeur/Débogage/ADB par réseau ON
noter l'adresse IP
- détecter l'appareil
adb connect device_ip_address
adb tcpip 5555
adb: adb devices

Ensuite, vous pourrez:
éteindre l'appareil: adb reboot -p
redémarrer le système: adb reboot
ou en mode recovery: adb reboot recovery

ouvrir un shell linux: adb shell
copier, depuis l'appareil vers Windows
un fichier: adb pull /sdcard/pictures/image.jpg
un répertoire et ses sous-répertoires: adb pull /sdcard/pictures/

lister un répertoire: adb shell ls -l /sdcard/snapseed/
récursivement: adb shell ls -l -R /sdcard/snapseed/

copier, de Windows vers l'appareil
un fichier: adb push [pictures_dir]/image.jpg /sdcard/pictures/image.jpg
un répertoire et ses sous-répertoires: adb push [pictures_dir]/ /sdcard/pictures/

Mais on peut aussi réaliser les copies depuis le shell linux avec des commandes unix plus classiques, voire utiliser un script pour faire la copie en mode batch.

Des exemples de commandes sur le système de fichier:
https://stackoverflow.com/questions/8650407/how-to-copy-selected-files-from-android-with-adb-pull

Répondre
skyrail
  • Posts de Forum 3 842

18 nov. 2019 à 20:55:05 via site

On peut même installer une apk depuis la ligne de commande Windows.
voir ici: https://stackoverflow.com/questions/7076240/install-an-apk-file-from-command-prompt
https://developer.android.com/studio/command-line/adb#shellcommands

Attention, le fichier apk est sur le file system Windows, pas sur le téléphone.
On peut choisir de l'installer sur la extsdcard ou dans la mémoire interne.
La commande adb install ne semble pas prendre en charge les caractères spéciaux (autre chose que des caractères alphanumériques ou le point). On peut créer un lien symbolique ou renommer le fichier pour remédier à ça.

— Modifié le 18 nov. 2019 à 21:02:48

Répondre
skyrail
  • Posts de Forum 3 842

17 mai 2020 à 21:56:02 via site

On parfois besoin de copier un fichier sur la carte SD du téléphone pour installer un nouveau firmware, sans avoir à démarrer Android auparavant.
Si on a installé TWRP, on peut démarrer en mode recovery sur l'interface de TWRP.
Ce dernier semble activer le débogage USB automatiquement, en tout cas sur Galaxy S5 rooté et LineageOS installé. Il est actif même après l'avoir désactivé sous Android.
Il suffit ensuite d'ouvrir une session DOS sous Windows et d'utiliser les commandes ADB "CD", "Push", ou bien un gestionnaire de fichier compatible adb. J'en connais un qui ne sacrifie pas les performances: far manager. Rajoutez-lui e plugin qui va bien: farDroid.
Et voilà.

Répondre
skyrail
  • Posts de Forum 3 842

27 févr. 2021 à 19:28:35 via site

On peut aussi afficher, filtrer, trier, les sms, probablement aussi les contacts et le journal des appels.
Il suffit d'ouvrir un shell adb en tant que super utilisateur, depuis un client adb avec une machine connectée à un appareil Android, via usb ou wifi (si on a la fonction adb over network)
$ adb shell su
$ sqlite3 /data/data/com.android.providers.telephony/databases/mmssms.db
ensuite, entrer les commandes sql.
par exemple: select * from sms order by date desc limit 5;
pour afficher les 5 derniers messages émis ou reçus.
ça suppose d'avoir installé sqlite. Moi, j'ai fait ça dans une session Termux en ligne de commande, exactement comme sous Linux. Ensuite plus besoin de termux, ça se passe entre adb et sqlite.
Je vous passe les détails. Et , si j'ai bien compris, Termux est dispo aussi pour les appareils non rootés.
Attention, la version Google Play n'est plus mise à jour depuis Android 10. Privilégier la version du catalogue F-Droid.
Pour les plus téméraires, on peut aussi interroger une database depuis une console termux, directement dans l'interface du téléphone (pas très pratique, écran trop petit) ou dans une console ssh (ça s'installe sous termux, on démarre un daemon, puis on fait les manips sur pc)
La dernière méthode est la moins simple à configurer, c'est souvent un peu lent, mais ça permet d'uniformiser les process entre les machines (smartphone, linux, windows...)
Et si on a pas adb over network, on peut quand même démarrer une session server ssh dans termux.

Bon, je peux lire les messages. Donc une sauvegarde (en copiant le fichier db ou en exportant les enregistrements) ou un post-traitement est possible.
Je ne sais pas encore si je peux modifier des enregistrements.

Luna

Répondre