Android en ligne de commandes

 

AndroidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...) en ligne de commandes signifie que vous voulez taper des commandes pour effectuer des tâches d'administration sur votre appareil.

Ces commandes seront des commandes UnixSystème d'exploitation multitâche et multi-utilisateur(1969). UNIX est une marque déposée de l'Open Group. D'autres systèmes "compatibles UNIX" existent: BSD, Linux, Android, OS X pour les plus connus du grand public. (et oui, si vous ne le saviez pas encore, AndroidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...) est basé sur un système d'exploitation: Unix).

Cependant, il y a peu de commandes accessibles à la base sous AndroidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...). Si vous voulez enrichir votre système avec d'autres commandes standards, il faudra installer busybox (ce qui requière que votre appareil soit rooté).

 

Il existe deux solutions pour passer en mode "ligne de commandes":

 

Dans tous les cas, il faudra avoir des connaissances du monde Unix et surtout des shell !

Image non trouvée !Vous pouvez très facilement briquer votre appareil suite à une opération inappropriée ! Faites des sauvegardes de votre système, données (répertoire efs entre autre sur certains modèles !!!).

Si vous voulez jouer aux apprentis sorciers pour mieux connaître le monde unixSystème d'exploitation multitâche et multi-utilisateur(1969). UNIX est une marque déposée de l'Open Group. D'autres systèmes "compatibles UNIX" existent: BSD, Linux, Android, OS X pour les plus connus du grand public., ce n'est franchement pas la meilleure solution ! Créez plutôt une machine virtuelle sur laquelle vous installerez un Linux quelconque, c'est bien moins dangereux !

Sinon, avant de vous lancez sur un vrai appareil, faîtes vos preuves sur un émulateur Android Google !

La commande rm est à éviter autant que possible. Préférez le renommage, le déplacement, ... Vous pourrez toujours espérer récupérer votre système en cas d'erreur ! Sous UnixSystème d'exploitation multitâche et multi-utilisateur(1969). UNIX est une marque déposée de l'Open Group. D'autres systèmes "compatibles UNIX" existent: BSD, Linux, Android, OS X pour les plus connus du grand public., les partitions peuvent être montées en lecture seule (la commande mount vous aidera à savoir quelle partition est ou non accessible en écriture. un mount -o remount,rw sur le répertoire pour le rendre accessible en lecture/écriture si nécessaire. Si vous ne comprenez rien à ce que je viens d'écrire, n'insistez pas, vous n'êtes pas au point ! Très gros risque de briquer votre appareil !).

S'il s'agit juste d'explorer les fichiers, utilisez une application AndroidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...) comme ES Explorer, c'est bien plus simple (mais pas forcement moins dangereux, sutout si l'option rootroot est le nom par défaut de l'utilisateur Unix ayant tous les privilèges. Il peut donc accéder à tous les répertoires, administrer le serveur, ... Aussi appelé super utilisateur ou super user. root peut aussi représenter le répertoire racine / sur un système Unix. est activée !). Si vous avez un environnement de développement sous eclipse, DDMS permet aussi de naviguer dans le système de fichiers de votre appareil et ce depuis un PC. Vous pourrez de même copier des fichiers vers ou depuis votre PC. C'est plus simple à l'usage ! Pour y accéder, soit vous avez déjà présent un bouton DDMS, soit, vous passez par le menu "Window", option "Open perspective/Other..." et choisissez DDMS et allez dans l'onglet File Explorer, puis push ou pull pour transférer des fichiers dans un sens ou dans l'autre. Sinon, un windowsSouvent associé au système d'exploitation de Microsoft pour les PC compatibles. Initialiement, un simple gestionnaire de fenêtres fonctionnant sous DOS. Windows ou au singulier Window peut aussi représenter une fenêtre (traduction du mot anglais Window !) dans d'autres gestionnaires de fenêtres pour d'autres systèmes d'exploitation. Window peut aussi représenter la touche Windows sur un clavier pour PC compatible (il y a deux touchent "window": Entre Ctrl et Alt à gauche du clavier ou entre Alt Gr Ctrl à droite par exemple). explorer peut aussi vous suffir...

 

Terminal Emulator

Toutes les commandes unixSystème d'exploitation multitâche et multi-utilisateur(1969). UNIX est une marque déposée de l'Open Group. D'autres systèmes "compatibles UNIX" existent: BSD, Linux, Android, OS X pour les plus connus du grand public. ne seront pas disponibles, même en installant busybox.

Voici des explications sur quelques commandes:

 

Voici des exemples courants de commandes que vous pourriez utiliser:

  • df : Vous pourrez connaître le montage, l'état d'occupation des partitions et la taille d'un bloc sur une partition avec la commande df, la taille en bloc occupée par répertoires et fichiers.
  • mount pour avoir la liste des partitions et le type de montage (lecture/écriture ou lecture seule). Cf. mount pour monter un file system en écriture.
  • rm : Pour effacer des fichiers (suivants les permissions que vous aurez): le plus fréquent sera rm nomfichier ou rm nomRépertoire -r (pour effacer un répertoire et toute l'arborescence dans ce répertoire -- ATTENTION DANGEREUX, faîtes attention à l'endroit où vous êtes lors de l'effacement, vous risquez d'effacer tout votre portable (suivant le niveau de sécurité) ! --).
  • mv source destination : permet de déplacer un fichier, c'est aussi en déplaçant un fichier que vous pourrez le renommer !
  • cp source destination ou cp source répertoire ou cp source1 source2 sourcen répertoire. L'option -r existe aussi pour faire une copie de répertoires en récursif !
  • su: pour passer en root !
  • chmod et chown pour modifier les droits, propriétaires sur un fichier, répertoires.

 

Pour rappel, sous UnixSystème d'exploitation multitâche et multi-utilisateur(1969). UNIX est une marque déposée de l'Open Group. D'autres systèmes "compatibles UNIX" existent: BSD, Linux, Android, OS X pour les plus connus du grand public., la commande man (pour manuel) permet d'avoir de l'aide sur une commande. Evidemment, le manuel n'est pas installé sur votre mobile même si la commande man existe, cela occuperait beaucoup trop de place. Par contre, tapez man cmd (où cmd est la commande pour laquelle vous désirez de l'aide) dans un moteur de recherche Web quelconque et vous retrouverez cette aide !

Vous pouvez aussi généralement taper une commande avec --help en paramètre pour avoir un minimum d'aide (voire sans le --help mais attention, certaines commandes n'attendent pas du tout de paramètres sous AndroidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...) et peuvent donc s'exécuter).

Image non trouvée !Lors de son installation, busybox indique les commandes qu'il a installé. Vous serez ainsi celles qui sont disponibles sur votre appareil.

 

Image non trouvée !Terminal emulator propose quelques options:

  • Un appui long pourra afficher la possibilité d'utiliser des touches ctrl, fnct, tout copier, coller (Sélectionner le texte ne servira pas vraiment)
  • Possibilité d'ouvrir plusieurs terminaux
  • La touche volume + une touche du clavier virtuel permet aussi de faire des trucs.

 

ADB

ADB pour AndroidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...) Debug Bridge. Cet outil de Google permet de travailler en ligne de commandes avec un AndroidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...).

 

Préparer ADB

Pour utiliser adb, il faut:

  • L'installer !

La meilleure solution est de récupérer le sdk Android. Puis récupérer uniquement adb si vous n'avez pas l'intention de développer sous AndroidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...):

Dans le zip, vous trouverez androidSystème d'exploitation basé sur le noyau Linux conçu initialement pour les smartphones et tablettes et qui peut être trouvé sur d'autres appareils (Android TV, Android Auto, ...)-sdks\platform-tools, vous trouverez les fichiers suivant:

    • adb.exe
    • AdbWinApi.dll
    • AdbWinUsbApi.dll

qu'il faudra copier dans un répertoire quelconque. Vous pouvez maintenant supprimer le fichier d'installation.

  • Accepter une connexion d'adb sur votre appareil.

Pour cela, il faut vérifier dans les options de développement que le débogage usb soit autorisé.

 

Utiliser adb

Lancez une session DOS sous Windows:

Pour tester que tout fonctionne, tapez adb -version qui aura pour effet d'afficher la version d'adb !

Image non trouvée !Si adb n'est pas reconnu, vous pouvez toujours préciser le chemin d'accès ou ajouter plus simplement le répertoire d'accès à la variable d'environnement PATH sous Windows.

 

adb -devices permet de lister l'ensemble des appareils présents (y compris un émulateur). Si un appareil est noté offline, alors la communication est coupée entre adb et l'appareil.

 

Vous pourrez ensuite taper

adb -e cmd pour lancer un adb sur l'unique émulateur Android en cours d'exécution dans votre environnement de dev (si c'est pour bidouiller, c'est plus sûr avec cette option !)

ou

adb -d cmd pour lancer un adb sur l'unique terminal présent.

où cmd sera une commande adb à exécuter.

 

Si un seul appareil/émulateur est présent, vous pouvez taper directement adb cmd

 

Liste de commandes:

help (ou adb sans commande) donne la liste des commandes utilisables

usb permet de relancer le démon scannant les ports usb à la recherche d'appareil.

reboot permet de rebooter votre appareil. Vous pourrez aussi préciser bootloader ou recovery (pour lancer le recovery ou cwm si installé) pour lancer votre appareil dans l'un des deux modes. Equivalent à la commande unix reboot de l'appareil.

wait-for-device permet d'attendre l'arrivée d'un appareil. A utiliser dans un batch par exemple...

adb kill-server permet de relancer votre serveur adb. Peut-être utile pour le relancer en rootroot est le nom par défaut de l'utilisateur Unix ayant tous les privilèges. Il peut donc accéder à tous les répertoires, administrer le serveur, ... Aussi appelé super utilisateur ou super user. root peut aussi représenter le répertoire racine / sur un système Unix..

adb rootroot est le nom par défaut de l'utilisateur Unix ayant tous les privilèges. Il peut donc accéder à tous les répertoires, administrer le serveur, ... Aussi appelé super utilisateur ou super user. root peut aussi représenter le répertoire racine / sur un système Unix. permet de lancer adb en rootroot est le nom par défaut de l'utilisateur Unix ayant tous les privilèges. Il peut donc accéder à tous les répertoires, administrer le serveur, ... Aussi appelé super utilisateur ou super user. root peut aussi représenter le répertoire racine / sur un système Unix.. Prévoir éventuellement un adb kill-server si adb déjà lancée.

adb remount permet de remonter le répertoire /system qui est read-only en read/write (prérequis: avoir fait un adb rootroot est le nom par défaut de l'utilisateur Unix ayant tous les privilèges. Il peut donc accéder à tous les répertoires, administrer le serveur, ... Aussi appelé super utilisateur ou super user. root peut aussi représenter le répertoire racine / sur un système Unix. !). Vous pourrez donc faire des majs dans ce répertoire. ATTENTION à ce que vous y ferez !!!

adb shell va lancer un shell UnixSystème d'exploitation multitâche et multi-utilisateur(1969). UNIX est une marque déposée de l'Open Group. D'autres systèmes "compatibles UNIX" existent: BSD, Linux, Android, OS X pour les plus connus du grand public. qui vous permttra ensuite d'exécuter des commandes UnixSystème d'exploitation multitâche et multi-utilisateur(1969). UNIX est une marque déposée de l'Open Group. D'autres systèmes "compatibles UNIX" existent: BSD, Linux, Android, OS X pour les plus connus du grand public.. Comme pour un shell standard:

 

adb shell cmd unixSystème d'exploitation multitâche et multi-utilisateur(1969). UNIX est une marque déposée de l'Open Group. D'autres systèmes "compatibles UNIX" existent: BSD, Linux, Android, OS X pour les plus connus du grand public. pour lancer une commande unixSystème d'exploitation multitâche et multi-utilisateur(1969). UNIX est une marque déposée de l'Open Group. D'autres systèmes "compatibles UNIX" existent: BSD, Linux, Android, OS X pour les plus connus du grand public. et retourner ensuite dans la session DOSDisk Operating System, système d'exploitation pour IBM PC. Voire aussi MS-DOS pour les PC compatibles. L'ancêtre de Microsoft Windows.. Vous n'avez donc pas à taper exit pour sortir du shell.

adb push <fichier source> <fichier destination> copier un fichier/répertoire vers le device. Ex. : adb push c:\temp\toto.txt /mnt/sdcard/titi.txt pour copier le fichier toto.txt vers la carte SD en le renommant titi.txt

adb pull <fichier source> <fichier destination> copier un fichier/répertoire depuis le device vers votre PC.

 

Il y a d'autres commandes. Il s'agit ici de celles que vous utiliserez à priori le plus souvent. Vous trouverez ici un exemple d'installation de .apk via adb (Même si cette opération reste assez rare, il peut se produire des cas où vous pourriez en avoir besoin pour installer un explorateur de fichiers par exemple qui vous permettra ensuite de reprendre la main sur votre appareil).

Image non trouvée !adb fonctionne très bien sur un émulateur Google Android. Mais il sera plus capricieux sur un vrai terminal. J'ai personnellement pu constater des dysfonctionnements d'adb remount par exemple. Une seule solution dans ce cas, faire un adb shell puis utiliser mount remount, ou utiliser terminal emulator.