Nas versões mais antigas do Android
Nas versões mais antigas do Android, os comandos do shell tendem a ser:
- Reescrito especificamente para Android e enviado como parte do Toolbox. Não tenho certeza se o Toolbox está ou não realmente documentado em qualquer lugar.
- Ou copiado do NetBSD. Nesse caso, o comando foi recompilado para o Android e o comando (mas não sua página de manual) é enviado com o Android.
Use type
para informar onde um comando está armazenado e ls -l
no comando para informar se é um link binário ou simbólico real. Se for um link simbólico para a Caixa de ferramentas, você saberá que o comando faz parte da Caixa de ferramentas.
Alguns comandos, como kill
, estão disponíveis como um shell embutido (esta é a versão que normalmente será executada) e dentro /system/bin
(essa versão normalmente nunca será executada). type
dirá qual versão será executada.
No Marshmallow e acima
Android 6.0 "Marshmallow" e acima do navio com Toybox , ea maioria dos comandos shell mais comumente utilizados ( cp
, mv
, ls
, et cetera) tendem a ser brinquedos Toybox. Os brinquedos da caixa de brinquedos normalmente incluem ajuda embutida; páginas do manual oficial não estão incluídas.
Ainda assim, o Toybox não inclui tudo e, portanto, nem tudo é fornecido pelo Toybox. Por exemplo, mesmo no Android 6.0 "Marshmallow" fsck_msdos
(que deve ser usado apenas para verificar cartões SD de 32 GB ou menos) parece ter sido retirado do FreeBSD ou do NetBSD. fsck_exfat
(que pode verificar a maioria dos cartões SD de 64 GB ou mais) é extraído de outro lugar. Não tenho certeza de onde.
Sua concha
Nas versões modernas do Android, o shell é o shell mksh
MirBSD Korn. Se mksh
estiver em execução, para descobrir sua mksh
versão, digite:
echo $KSH_VERSION