Sur les anciennes versions d'Android
Sur les anciennes versions d'Android, les commandes shell ont tendance à être soit:
- Réécrit spécifiquement pour Android et livré avec Toolbox. Je ne sais pas si Toolbox est vraiment documenté ou non.
- Ou copié à partir de NetBSD. Si tel est le cas, la commande a été recompilée pour Android et la commande (mais pas sa page de manuel) est livrée avec Android.
Utilisation type
pour vous indiquer où une commande est stockée, et ls -l
sur la commande pour vous dire s'il s'agit d'un vrai lien binaire ou symbolique. S'il s'agit d'un lien symbolique vers Toolbox, vous saurez que la commande fait partie de Toolbox.
Quelques commandes, telles que kill
, sont disponibles à la fois comme un shell intégré (c'est la version qui s'exécutera normalement) et dans/system/bin
(cette version ne sera normalement jamais exécutée). type
vous dira quelle version sera exécutée.
Sur guimauve et plus
Android 6.0 « Marshmallow » et en bateau avec Toybox , et la plupart des commandes shell les plus couramment utilisés ( cp
, mv
,ls
, etc.) ont tendance à être des jouets Toybox. Les jouets Toybox incluent normalement une aide intégrée; les pages de manuel officielles ne sont pas incluses.
Pourtant, Toybox n'inclut pas tout, et donc tout n'est pas fourni par Toybox. Par exemple, même sur Android 6.0 "Marshmallow", fsck_msdos
(qui ne doit être utilisé que pour vérifier les cartes SD de 32 Go ou moins) semble provenir de FreeBSD ou de NetBSD. fsck_exfat
(qui peut vérifier la plupart des cartes SD de 64 Go ou plus) provient d'ailleurs. Je ne sais pas où.
Votre coquille
Sur les versions modernes d'Android, le shell est mksh
, le shell MirBSD Korn. Si mksh
est en cours d'exécution, alors pour connaître votre mksh
version, entrez:
echo $KSH_VERSION