android 启动后,会发现很多命令用不了.这个比较郁闷.都怪安装的toolbox功能太少.我们可以手动安装busybox到系统.
可以下载busybox源代码自己编译.也可以使用网上别人编译好的二进制的文件.安装上就好了.
我下了个别人编译好的.先通过 adb push d:/busybox /data/busybox/
建议安装到这个目录下.有些别的目录没有写权限.可以自己在/data目录下创建个busybox目录,然后用
./busybox --install
安装到当前目录.
通过 export PATH=${PATH}:/data/busybox/
init.rc增加
service console /data/busybox/sh
console
启动后启动busybox的shell,功能强大,比如可以TAB
按键补齐,向上翻执行过的命令
这样设置的是本地有效,一旦你退出当前环境.需要重新设置PATH.
///////////////////////////////////////////////
busybox及bash在android中的安装
1. ramdisk的制作 2.6内核开始,initrd.img采用cpio压缩,ramdisk.img也一样,使用gunzip解压缩,然后再使用 cpio解包。 1)将ramdisk.img复制其他目录,名称改为ramdisk.img.gz,解压 #gunzip ramdisk.img.gz //新建一个文件夹ramdisk,进入 #cpio -i -F ../ramdisk.img 这时,可到ramdisk中看看去~ 2)修改init.rc,在PATH中加上busybox 路径 //busybox安装在 /data/busybox ## Global environment setup ## env { #其中, /data/busybox 为busybox安装路径,bash也是放在其中 PATH /data/busybox:/sbin:/system/sbin:/system/bin LD_LIBRARY_PATH /system/lib ANDROID_BOOTLOGO 1 ANDROID_ROOT /system ANDROID_ASSETS / system/app ANDROID_DATA /data EXTERNAL_STORAGE /sdcard DRM_CONTENT /data/drm/content HOME / #这个也是新添加环境变量 3)重新打包成镜像,并使用新镜像启动emulator #cpio -i -t -F ../ramdisk.img > list #cpio -o -H newc -O rd_busybox.img < list //使用 -ramdisk 参数,指定所使用的镜像文件 #emulator -noskin -ramdisk rd_ramdisk.img 2. 安装busybox及bash 下载地址:http://www.billrocks.org/android_libs/bin/ 注:也可自行交叉编译,不过需静态编译。 #adb shell mkdir /data/busybox #adb push busybox /data/busyobx #adb push bash /data/busybox //adb shell,进入android #cd /data/busyobx #chmod +x busybox bash #./busybox --install //将程序安装在当前目录下 //重启emulator,进入bash bash-3.2# export declare -x ANDROID_ASSETS="/system/app" declare -x ANDROID_BOOTLOGO="1" declare -x ANDROID_DATA="/data" declare -x ANDROID_ROOT="/system" declare -x DRM_CONTENT="/data/drm/content" declare -x EXTERNAL_STORAGE="/sdcard" declare -x HOME="/" declare -x LD_LIBRARY_PATH="/system/lib" declare -x OLDPWD declare -x PATH="/data/busybox:/sbin:/system/sbin:/system/bin" declare -x PWD="/data/bin/tst" declare -x SHLVL="1" 注:在1中修改 init.rc 增加的环境变量及路径已经生效。 |