En versiones anteriores de Android
En versiones anteriores de Android, los comandos de shell tienden a ser:
- Reescrito específicamente para Android y enviado como parte de Toolbox. No estoy seguro de si Toolbox está realmente documentado en alguna parte.
- O copiado de NetBSD. Si es así, el comando se volvió a compilar para Android, y el comando (pero no su página de manual) se envía con Android.
Use type
para decirle dónde está almacenado un comando, y ls -l
en el comando para decirle si es un enlace binario real o simbólico. Si es un enlace simbólico a Toolbox, entonces sabrá que el comando es parte de Toolbox.
Algunos comandos, como por ejemplo kill
, están disponibles tanto como shell incorporado (esta es la versión que normalmente se ejecutará) como en /system/bin
(esta versión normalmente nunca se ejecutará). type
le dirá qué versión se ejecutará.
En Marshmallow y hasta
Android 6.0 "Marshmallow" y encima de la nave con Toybox , y la mayoría de los comandos de la cáscara más comúnmente utilizados ( cp
, mv
, ls
, etc.) tienden a ser juguetes Toybox. Los juguetes Toybox normalmente incluyen ayuda incorporada; Las páginas oficiales del manual no están incluidas.
Aún así, Toybox no incluye todo, por lo que Toybox no proporciona todo. Por ejemplo, incluso en Android 6.0 "Marshmallow", fsck_msdos
(que solo debe usarse para verificar tarjetas SD de 32 GB o menos) parece estar tomado de FreeBSD o NetBSD. fsck_exfat
(que puede verificar la mayoría de las tarjetas SD de 64 GB o más) se toma de otro lugar. No estoy seguro de dónde.
Su caparazón
En las versiones modernas de Android, el shell es el shell mksh
MirBSD Korn. Si se mksh
está ejecutando, para averiguar su mksh
versión, ingrese:
echo $KSH_VERSION