busybox及bash在android中的安装及init.rc修改

来源:互联网 发布:邮箱的正则表达式php 编辑:程序博客网 时间:2024/05/17 01:42

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


版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://zhiyazw.blogbus.com/logs/33430727.html