The Android Shell
A "shell" is a program that listens to keyboard input from a user and performs actions as directed by the user. Android devices come with a simple shell program. This shell program is mostly undocumented. Since many people are curious about it I thought I'd write up some documentation for it.
Common problems
The built-in shell has very limited error handling. When you type a command name incorrectly it will say "permission denied", even though the real problem is that it couldn't find the command: |
Code:
$ dir dir: permission denied <---- this is a misleading error message, should say 'dir: not found' $ ls ... listing of current directory
The Android shell will run any program it finds in its PATH. The PATH is a list of directories. You can find out what your shell's PATH is set to by using the built-in echo command:
Code:
$ echo $PATH /data/local/bin:/sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin
Built in Commands
Every shell has a few built-in commands. Some common built-in commands are:
- echo -- prints text to stdout.
- set -- sets shell variables
- export -- makes shell variables available to command-line programs
- cd -- change the current directory.
- pwd -- print name of the current directory.
Commands
To find out what commands you have available to you, use the "ls" command on each of the directories in the PATH variable. |
Many of the Android commands are based on standard Linux (or bsd) commands. If you're curious about a command, you can sometimes learn how it works by using the "man" command on a desktop Linux or OSX (Apple Macintosh) computer. The Linux or OSX version of the command may be different in details, but much of the documentation will still apply to the Android version of the command.
Another source of documentation for people without a Linux or OSX machine handy is to use a web browser and use a web search engine to search for the text: "man Linux command-name".
List of commands
The following is a list of the commands that are present on a Nexus S phone running an Android 2.3.3 "user-debug" build. Many of these commands are not present on a "user" phone. (They are missing from a "user" phone because they are specific to developing or debugging the Android operating system.)
Code:
$ ls /data/local/bin /data/local/bin: No such file or directory
Code:
$ ls /sbin opendir failed, Permission denied
Code:
$ su # ls /sbin ueventd adbd # exit $
Notice that the shell prompt changes from a '$' to a '#' to indicate that you have root access. |
Code:
$ ls /vendor/bin gpsd pvrsrvinit
Code:
$ ls /system/sbin /system/sbin: No such file or directory
Code:
$ ls /system/bin am
am is the Android Activity Manager. It's used to start and stop Android activities (e.g. applications) from the command line. Type am by itself to get a list of options. |
Code:
amix aplay
Code:
app_process applypatch
Code:
arec
Code:
audioloop bluetoothd
Code:
bmgr
Code:
bootanimation
Code:
brcm_patchram_plus bugreport cat
Code:
chmod
Code:
chown
Code:
cmp
Code:
dalvikvm
Code:
date
Code:
dbus-daemon dd
Code:
debuggerd dexopt df
Code:
dhcpcd dmesg dnsmasq dumpstate dumpsys dvz fsck_msdos gdbserver getevent getprop gzip hciattach hd id ifconfig iftop ime input insmod installd ioctl ionice iptables keystore keystore_cli kill
Code:
linker ln
Code:
log logcat
Code:
logwrapper ls
Code:
lsmod lsof make_ext4fs mediaserver mkdir
Code:
monkey
Code:
mount mtpd mv
Code:
nandread ndc netcfg netd netstat newfs_msdos notify omx_tests pand ping pm pppd printenv ps
Code:
qemu-props qemud racoon radiooptions reboot
Code:
record renice rild rm
Code:
rmdir
Code:
rmmod route rtp_test run-as schedtest schedtop sdcard sdptool sendevent service servicemanager setconsole setprop setup_fs sh showlease sleep smd stagefright start
Code:
stop
Code:
surfaceflinger svc sync system_server tc testid3 toolbox top
Code:
umount uptime
Code:
vdc vmstat vold watchprops wipe wpa_cli wpa_supplicant $ ls /system/xbin add-property-tag btool check-lost+found dexdump dhdutil hcidump latencytop librank opcontrol oprofiled procmem procrank rawbu scp
Code:
showmap showslab sqlite3
Code:
strace
Code:
su
No comments:
Post a Comment