Merge "Add a README.md about our shell and utilities."
This commit is contained in:
commit
75d195693b
1 changed files with 157 additions and 0 deletions
157
shell_and_utilities/README.md
Normal file
157
shell_and_utilities/README.md
Normal file
|
@ -0,0 +1,157 @@
|
|||
Android's shell and utilities
|
||||
=============================
|
||||
|
||||
Since IceCreamSandwich Android has used
|
||||
[mksh](https://www.mirbsd.org/mksh.htm) as its shell. Before then it used
|
||||
[ash](https://en.wikipedia.org/wiki/Almquist_shell) (which actually
|
||||
remained in the tree up to and including KitKat).
|
||||
|
||||
Initially Android had a very limited command-line provided by its
|
||||
own "toolbox" binary. These days almost everything is supplied by
|
||||
[toybox](http://landley.net/toybox/) instead.
|
||||
|
||||
We started moving a few of the more important tools to full
|
||||
BSD implementations in JellyBean before we started in earnest in
|
||||
Lollipop. Lollipop was a major break with the past in many ways (LP64
|
||||
support and the switch to ART both having lots of knock-on effects around
|
||||
the system), so although this was the beginning of the end of toolbox it
|
||||
(a) didn't stand out given all the other systems-level changes and (b)
|
||||
in Marshmallow we changed direction and started the move to toybox.
|
||||
|
||||
The lists below show what tools were provided and where they came from in
|
||||
each release starting with Gingerbread. This doesn't tell the full story,
|
||||
because the toolbox implementations did have bugs fixed and options added
|
||||
over the years. Gingerbread's rm, for example, supported `-r`/`-R` but not
|
||||
`-f`. But this gives you an idea of what was available in any given release,
|
||||
and how usable it was likely to be.
|
||||
|
||||
|
||||
Android 2.3 (Gingerbread)
|
||||
-------------------------
|
||||
|
||||
BSD: cat dd newfs\_msdos
|
||||
|
||||
toolbox: chmod chown cmp date df dmesg getevent getprop hd id ifconfig
|
||||
iftop insmod ioctl ionice kill ln log ls lsmod lsof mkdir mount mv
|
||||
nandread netstat notify printenv ps reboot renice rm rmdir rmmod route
|
||||
schedtop sendevent setconsole setprop sleep smd start stop sync top
|
||||
umount uptime vmstat watchprops wipe
|
||||
|
||||
|
||||
Android 4.0 (IceCreamSandwich)
|
||||
------------------------------
|
||||
|
||||
BSD: cat dd newfs\_msdos
|
||||
|
||||
toolbox: chmod chown cmp date df dmesg getevent getprop hd id ifconfig
|
||||
iftop insmod ioctl ionice kill ln log ls lsmod lsof mkdir mount mv
|
||||
nandread netstat notify printenv ps reboot renice rm rmdir rmmod route
|
||||
schedtop sendevent setconsole setprop sleep smd start stop sync top
|
||||
touch umount uptime vmstat watchprops wipe
|
||||
|
||||
|
||||
Android 4.1-4.3 (JellyBean)
|
||||
---------------------------
|
||||
|
||||
BSD: cat cp dd du grep newfs\_msdos
|
||||
|
||||
toolbox: chcon chmod chown clear cmp date df dmesg getenforce getevent
|
||||
getprop getsebool hd id ifconfig iftop insmod ioctl ionice kill ln
|
||||
load\_policy log ls lsmod lsof md5 mkdir mount mv nandread netstat notify
|
||||
printenv ps reboot renice restorecon rm rmdir rmmod route runcon schedtop
|
||||
sendevent setconsole setenforce setprop setsebool sleep smd start stop
|
||||
sync top touch umount uptime vmstat watchprops wipe
|
||||
|
||||
|
||||
Android 4.4 (KitKat)
|
||||
--------------------
|
||||
|
||||
BSD: cat cp dd du grep newfs\_msdos
|
||||
|
||||
toolbox: chcon chmod chown clear cmp date df dmesg getenforce getevent
|
||||
getprop getsebool hd id ifconfig iftop insmod ioctl ionice kill ln
|
||||
load\_policy log ls lsmod lsof md5 mkdir mkswap mount mv nandread netstat
|
||||
notify printenv ps readlink renice restorecon rm rmdir rmmod route runcon
|
||||
schedtop sendevent setconsole setenforce setprop setsebool sleep smd start
|
||||
stop swapoff swapon sync top touch umount uptime vmstat watchprops wipe
|
||||
|
||||
|
||||
Android 5.0 (Lollipop)
|
||||
----------------------
|
||||
|
||||
BSD: cat chown cp dd du grep kill ln mv printenv rm rmdir sleep sync
|
||||
|
||||
toolbox: chcon chmod clear cmp date df dmesg getenforce getevent getprop
|
||||
getsebool hd id ifconfig iftop insmod ioctl ionice load\_policy log ls
|
||||
lsmod lsof md5 mkdir mknod mkswap mount nandread netstat newfs\_msdos
|
||||
nohup notify ps readlink renice restorecon rmmod route runcon schedtop
|
||||
sendevent setenforce setprop setsebool smd start stop swapoff swapon
|
||||
top touch umount uptime vmstat watchprops wipe
|
||||
|
||||
|
||||
Android 6.0 (Marshmallow)
|
||||
-------------------------
|
||||
|
||||
BSD: dd du grep
|
||||
|
||||
toolbox: df getevent iftop ioctl ionice log ls lsof mount nandread
|
||||
newfs\_msdos ps prlimit renice sendevent start stop top uptime watchprops
|
||||
|
||||
toybox: acpi basename blockdev bzcat cal cat chcon chgrp chmod chown
|
||||
chroot cksum clear comm cmp cp cpio cut date dirname dmesg dos2unix echo
|
||||
env expand expr fallocate false find free getenforce getprop groups
|
||||
head hostname hwclock id ifconfig inotifyd insmod kill load\_policy ln
|
||||
logname losetup lsmod lsusb md5sum mkdir mknod mkswap mktemp modinfo
|
||||
more mountpoint mv netstat nice nl nohup od paste patch pgrep pidof
|
||||
pkill pmap printenv printf pwd readlink realpath restorecon rm rmdir
|
||||
rmmod route runcon sed seq setenforce setprop setsid sha1sum sleep sort
|
||||
split stat strings swapoff swapon sync sysctl tac tail tar taskset tee
|
||||
time timeout touch tr true truncate umount uname uniq unix2dos usleep
|
||||
vmstat wc which whoami xargs yes
|
||||
|
||||
|
||||
Android 7.0 (Nougat)
|
||||
--------------------
|
||||
|
||||
BSD: dd grep
|
||||
|
||||
toolbox: getevent iftop ioctl log nandread newfs\_msdos ps prlimit
|
||||
sendevent start stop top
|
||||
|
||||
toybox: acpi base64 basename blockdev bzcat cal cat chcon chgrp chmod
|
||||
chown chroot cksum clear comm cmp cp cpio cut date df dirname dmesg
|
||||
dos2unix du echo env expand expr fallocate false find flock free
|
||||
getenforce getprop groups head hostname hwclock id ifconfig inotifyd
|
||||
insmod ionice iorenice kill killall load\_policy ln logname losetup ls
|
||||
lsmod lsof lsusb md5sum mkdir mknod mkswap mktemp modinfo more mount
|
||||
mountpoint mv netstat nice nl nohup od paste patch pgrep pidof pkill
|
||||
pmap printenv printf pwd readlink realpath renice restorecon rm rmdir
|
||||
rmmod route runcon sed seq setenforce setprop setsid sha1sum sleep sort
|
||||
split stat strings swapoff swapon sync sysctl tac tail tar taskset tee
|
||||
time timeout touch tr true truncate tty ulimit umount uname uniq unix2dos
|
||||
uptime usleep vmstat wc which whoami xargs xxd yes
|
||||
|
||||
|
||||
Current AOSP
|
||||
------------
|
||||
|
||||
BSD: dd grep
|
||||
|
||||
bzip2: bzcat bzip2 bunzip2
|
||||
|
||||
toolbox: getevent gzip newfs\_msdos gunzip zcat
|
||||
|
||||
toybox: acpi base64 basename blockdev cal cat chcon chgrp chmod chown
|
||||
chroot chrt cksum clear cmp comm cp cpio cut date df diff dirname dmesg
|
||||
dos2unix du echo env expand expr fallocate false file find flock free
|
||||
getenforce getprop groups head hostname hwclock id ifconfig inotifyd
|
||||
insmod ionice iorenice kill killall ln load\_policy log logname losetup
|
||||
ls lsmod lsof lsusb md5sum microcom mkdir mknod mkswap mktemp modinfo
|
||||
modprobe more mount mountpoint mv netstat nice nl nohup od paste patch
|
||||
pgrep pidof pkill pmap printenv printf ps pwd readlink realpath renice
|
||||
restorecon rm rmdir rmmod runcon sed sendevent seq setenforce setprop
|
||||
setsid sha1sum sha224sum sha256sum sha384sum sha512sum sleep sort split
|
||||
start stat stop strings swapoff swapon sync sysctl tac tail tar taskset
|
||||
tee time timeout top touch tr true truncate tty ulimit umount uname uniq
|
||||
unix2dos uptime usleep uudecode uuencode vmstat wc which whoami xargs
|
||||
xxd yes
|
Loading…
Reference in a new issue