ADB Shell Tips and Tricks
Coming from a Linux world, it was easy for me to use the Android Debug Bridge (adb) shell. Here are some ADB Tips and Tricks for you.
By default, it’s a Bourne Shell (sh) that opens when you connect to your phone.
I always hate it when I want to see the content of a folder and I get to see funny characters instead. This is because the default Linux terminal supports color codes, while adb shell doesn’t. There are other types of interfaces to use instead of connecting from command prompt, but I rather keep my tools to the minimum. Thus, there are some workarounds:
# alias ls='ls –color=none'
This will enable all your
ls commands during the current session to be actually
ls –color=none. I usually go for the extended version of it:
# alias ls='ls –color=none -al'
Now you will also see hidden folders, together with a rather comprehensive description about them. Another way to do this is to make sure you type like this every time you want to see the content of the folder:
# ls –color=none -al
Searching for a file:
# find / -name filename
filename with what you are searching for. Careful, it’s case sensitive! For example, on InsertCoin 1.9c, searching for
bootanimation.zip should be done:
# find / -type f -name bootanimation.zip find / -type f -name bootanimation.zip /mnt/sdcard/dropbox/Public/Cheshire/bootanimation.zip /mnt/sdcard/bootanimation.zip /system/sd/.customize/resource/bootanimation.zip
As you can see, I have the file
bootanimation.zip in three directories, twice on the fat32 partition of the SD card and once on the ext4 partition.
The same as in Linux, the command is
There’s a lot of information to see at one time, but luckily you can filter it (by the use of
tail for example). For example, to see the battery messages, I always use:
# dmesg | grep batt | tail -n 10 dmesg | grep batt | tail -n 10 [14237.468658] batt: 86%, 4094 mV, 233 mA (233 avg), 31.8 C, 1171 mAh [14287.522918] batt: 86%, 4099 mV, 233 mA (232 avg), 31.8 C, 1174 mAh [14337.577728] batt: 86%, 4099 mV, 232 mA (228 avg), 31.8 C, 1176 mAh [14387.632354] batt: 87%, 4099 mV, 230 mA (231 avg), 32.0 C, 1180 mAh [14437.694732] batt: 87%, 4104 mV, 231 mA (230 avg), 32.0 C, 1184 mAh [14487.748870] batt: 87%, 4104 mV, 231 mA (231 avg), 32.1 C, 1187 mAh [14537.801940] batt: 88%, 4109 mV, 231 mA (230 avg), 32.1 C, 1190 mAh [14587.860931] batt: 88%, 4109 mV, 228 mA (230 avg), 32.1 C, 1193 mAh [14637.917572] batt: 88%, 4109 mV, 229 mA (225 avg), 32.1 C, 1196 mAh [14687.972503] batt: 88%, 4114 mV, 228 mA (228 avg), 32.1 C, 1200 mAh
As a sidenote, the first number displayed is the time in second since the phone was booted. You can also see it (in days, hours, minutes) with:
# uptime uptime 17:08:30 up 4:04, load average: 1.02, 1.06, 1.12
Creating a symlink
This is done with the command:
# ln -s source destination
# ln -s /system/xbin/busybox /system/xbin/ifconfig
You can always check it after with:
# ls -al –color=none /system/xbin/ifconfig lrwxrwxrwx 1 0 0 20 Feb 15 19:44 /system/xbin/ifconfig -> /system/xbin/busybox
Which is the full path to a command
If you need to know which
ifconfig will be used by default (assuming for instance, you have he standard one and the busybox one) just ask the Bourne Shell. Same applies if you need to know the full path to the command:
# which ifconfig which ifconfig /system/xbin/ifconfig