jackpal / Android-Terminal-Emulator

author
6 minutes, 29 seconds Read

#The Android Shell

Un « shell » est un programme qui écoute les entrées clavier d’un utilisateur et effectue des actions selon les instructions de l’utilisateur. Les appareils Android sont livrés avec un programme shell simple. Ce programme shell est en grande partie non documenté. Puisque beaucoup de personnes sont curieuses à son sujet, j’ai pensé écrire une documentation pour lui.

Currently this documentation is incomplete, sorry!

###Problèmes communs

Le shell intégré a une gestion des erreurs très limitée. Lorsque vous tapez un nom de commande de manière incorrecte, il dira « permission refusée », même si le vrai problème est qu’il n’a pas pu trouver la commande :

$ dirdir: permission denied <---- this is a misleading error message, should say 'dir: not found'$ ls... listing of current directory

#La variable PATH

Le shell Android exécutera tout programme qu’il trouvera dans son PATH. Le PATH est une liste de répertoires séparés par deux points (‘:’). Vous pouvez trouver ce que le PATH de votre shell est défini en utilisant la commande intégrée echo:

$ echo $PATH/data/local/bin:/sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin

Dépendant de votre shell, vous pouvez voir un résultat différent.

#Commandes intégrées

Chaque shell a quelques commandes intégrées. Certaines commandes intégrées communes sont :

  • echo — imprime le texte sur stdout.
  • set — définit les variables de l’interpréteur de commandes
  • export — rend les variables de l’interpréteur de commandes disponibles pour les programmes de ligne de commande
  • cd — change le répertoire actuel.
  • pwd — imprime le nom du répertoire actuel.

#CommandesPour connaître les commandes dont vous disposez, utilisez la commande « ls » sur chacun des répertoires de la variable PATH.

##Formation des commandes Android.

Plusieurs des commandes Android sont basées sur des commandes Linux (ou bsd) standard. Si vous êtes curieux au sujet d’une commande, vous pouvez parfois apprendre comment elle fonctionne en utilisant la commande « man » sur un ordinateur de bureau Linux ou OSX (Apple Macintosh). La version Linux ou OSX de la commande peut être différente dans les détails, mais une grande partie de la documentation s’appliquera toujours à la version Android de la commande.

Une autre source de documentation pour les personnes qui n’ont pas une machine Linux ou OSX à portée de main est d’utiliser un navigateur Web et d’utiliser un moteur de recherche Web pour rechercher le texte : « man Linux nom-commande ».

##Liste des commandes

Ci-après figure la liste des commandes présentes sur un téléphone Nexus S exécutant une build Android 2.3.3 « user-debug ». Plusieurs de ces commandes ne sont pas présentes sur un téléphone « user ». (Elles sont absentes d’un téléphone « utilisateur » parce qu’elles sont spécifiques au développement ou au débogage du système d’exploitation Android.)

$ ls /data/local/bin/data/local/bin: No such file or directory

Notez que par défaut il n’y a pas de répertoire /data/local/bin. Vous pouvez créer ce répertoire en utilisant la commande « mkdir » si vous le souhaitez.

$ ls /sbinopendir failed, Permission denied

Le répertoire /sbin existe, mais vous n’avez pas la permission d’y accéder. Vous avez besoin d’un accès root. Si vous avez un téléphone de développeur, ou si vous avez autrement un accès root à votre téléphone, vous pouvez voir ce qu’il y a dans ce répertoire.

$ su# ls /sbinueventdadbd# exit$ 

Notez que l’invite du shell passe d’un ‘$’ à un ‘#’ pour indiquer que vous avez un accès root.

Notez également qu’aucune des commandes /sbin n’est utile au shell — les fichiers adb et ueventd sont des programmes ‘démons’ utilisés pour mettre en œuvre le programme Android Debugger « adb » qui est utilisé par les développeurs.

$ ls /vendor/bingpsdpvrsrvinit

Vendor/bin est l’endroit où les fournisseurs de périphériques peuvent mettre des exécutables spécifiques aux périphériques. Ces fichiers proviennent d’un Nexus S.

$ ls /system/sbin/system/sbin: No such file or directory

Ce répertoire n’existe pas sur un Nexus S.

$ ls /system/binam

am est le gestionnaire d’activités Android. Il est utilisé pour démarrer et arrêter les activités Android (par exemple, les applications) à partir de la ligne de commande. Tapez am tout seul pour obtenir une liste d’options.

amixaplay

Lecteur de fichiers audio en ligne de commande.

app_processapplypatch

Utilisé pour appliquer des correctifs aux fichiers android.

arec

Enregistreur audio en ligne de commande.

audioloopbluetoothd

Démon BlueTooth

bmgr

Gestionnaire de sauvegarde – tapez la commande par elle-même pour obtenir la documentation.

bootanimation

Dessine l’animation de démarrage. Vous devrez peut-être réinitialiser votre téléphone pour en sortir.

brcm_patchram_plusbugreportcat

Copie le contenu d’un fichier sur la sortie standard.

chmod

Change le mode d’un fichier (par ex. s’il peut être lu ou écrit.)

chown

Changer le propriétaire d’un fichier.

cmp

Comparer deux fichiers octet par octet

dalvikvm

La machine virtuelle dalvik. (Utilisée pour exécuter les applications Android.)

date

Imprime la date et l’heure actuelles

dbus-daemondd

Convertit et copie un fichier. Par défaut, copie l’entrée standard vers la sortie standard.

debuggerddexoptdf

Affiche l’espace libre sur les différents systèmes de fichiers de votre appareil.

dhcpcddmesgdnsmasqdumpstatedumpsysdvzfsck_msdosgdbservergeteventgetpropgziphciattachhdidifconfig

Montre la configuration actuelle des interfaces réseau (IP, adresse MAC etc)

iftop

Montre les processus actuels utilisant les interfaces réseau (haut, mais pour les réseaux)

imeinputinsmodinstalldioctlioniceiptables

Gère le pare-feu

keystorekeystore_clikill

Envoie des signaux aux processus.

linkerln

Utilisé pour établir un lien avec le système de fichiers.

loglogcat

Imprime le journal d’exécution d’Android.

logwrapperls

Liste les fichiers.

lsmodlsofmake_ext4fsmediaservermkdir

Faire un répertoire.

monkey

Programme qui envoie des événements aléatoires, utilisé pour tester des applications. (Comme avoir un singe qui joue avec le périphérique.)

mountmtpdmv

Déplacer un fichier d’un répertoire à un autre. (Uniquement sur le même système de fichiers. Utilisez « cat a > b » pour copier un fichier entre systèmes de fichiers.

nandreadndcnetcfgnetdnetstatnewfs_msdosnotifyomx_testspandpingpmpppdprintenvps

Liste des processus actifs.

qemu-propsqemudracoonradiooptionsreboot

Redémarrer le périphérique.

recordrenicerildrm

Supprimer un fichier.

rmdir

Supprimer un répertoire.

rmmodroutertp_testrun-asschedtestschedtopsdcardsdptoolsendeventserviceservicemanagersetconsolesetpropsetup_fsshshowleasesleepsmdstagefrightstart

Démarrer le runtime Android.

stop

Arrête le runtime Android.

surfaceflingersvcsyncsystem_servertctestid3toolboxtop

Affiche les processus qui utilisent actuellement le plus de temps CPU.

umountuptime

Imprime la durée de fonctionnement de votre appareil depuis son dernier démarrage.

vdcvmstatvoldwatchpropswipewpa_cliwpa_supplicant$ ls /system/xbinadd-property-tagbtoolcheck-lost+founddexdumpdhdutilhcidumplatencytoplibrankopcontroloprofiledprocmemprocrankrawbuscp

Programme de copie sécurisée. (Utilisé pour copier des fichiers sur le réseau.)

showmapshowslabsqlite3

Utilisé pour administrer les bases de données SQLite.

strace

Commande de trace système – à utiliser pour voir quels appels système un programme fait.

su

Démarrer un shell avec les privilèges de root.

#Versions du shell Android

  • Android 1.0 utilisait un shell qui n’avait pas de complétion de tabulation ou d’édition d’historique.
  • Android 2.3 a ajouté l’édition d’historique. Vous pouvez par exemple utiliser les flèches haut/bas pour modifier les commandes précédentes.

#Autres shells

#Busybox

Busybox est un programme qui contient un shell et un ensemble d’utilitaires de ligne de commande. Cherchez « Busybox » sur Android Market et vous devriez trouver des versions que vous pouvez installer. Le shell Busybox comprend la complétion de tabulation et l’édition de l’historique. Certaines versions de Busybox pour Android ne nécessitent pas que vous rootiez votre téléphone.

#Utilitaires Debian

Vous pouvez installer le shell et les utilitaires Debian complets. (Debian est une distribution Linux de bureau populaire.) Je ne connais pas les détails, et cela peut nécessiter un téléphone « rooté ». Essayez une recherche sur le web pour « Debian Android install ».

#Les ROMs personnalisées

Certaines ROMs personnalisées viennent avec leurs propres shells et utilitaires. Si vous utilisez une ROM personnalisée, vérifiez sa documentation pour découvrir ce qui est disponible.

Similar Posts

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.