现在的位置: 首页 > 综合 > 正文

android 安装busybox

2013年12月08日 ⁄ 综合 ⁄ 共 1971字 ⁄ 字号 评论关闭

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 增加的环境变量及路径已经生效。

抱歉!评论已关闭.