If you want a complete set of unix tools in your phone, here are the steps to cross-compile and install busybox from source (there's no need to root the phone and/or install everything using the busybox installer from the market).
Download the latest ARM gnueabi toolchain from codesourcery.
Get the busybox source code from the git repository:
$ git clone git://busybox.net/busybox.git
Copy my busybox config file (or use your own config if you prefer, this can be just a starting point):
$ cd busybox
$ wget -O .config http://www.develer.com/~arighi/android/busybox/config
[optional] Change the busybox config if you want by running:
$ make menuconfig
Cross-compile busybox:
$ make oldconfig && make
At the end of the build the busybox binary should be available as a statically linked ELF for ARM:
$ file busybox
busybox: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, for GNU/Linux 2.6.16, stripped
Upload the busybox binary to the device (you don't need root access to your phone):
$ adb push busybox /data/local/tmp/
Now busybox it's ready to be used:
$ adb shell /data/local/tmp/busybox CMD
Example:
$ adb shell /data/local/tmp/busybox lsusb
Bus 001 Device 001: ID 1d6b:0002
Bus 001 Device 002: ID 1519:0020
=== NOTE: all the following steps are optional ===
If you have enabled the adb root shell access to your phone (i.e., by rooting the phone or by installing my custom kernel), you can also install busybox in the /system partition and have all the commands available in the $PATH.
Remount the /system partition in read-write mode on your phone:
$ adb shell "mount -oremount,rw /dev/block/mmcblk0p9 /system
Upload the busybox binary to the /system partition:
$ adb push busybox /system/xbin/busybox
Install busybox by using busybox itself:
$ adb shell "chmod 755 /system/xbin/busybox"
$ adb shell "/system/xbin/busybox --install -s /system/xbin"
Remount /system in read-only:
$ adb shell "mount -oremount,ro /dev/block/mmcblk0p9 /system"
Now all the busybox applets are in your $PATH:
$ adb shell lsusb
Bus 001 Device 001: ID 1d6b:0002
Bus 001 Device 002: ID 1519:0020
No comments:
Post a Comment