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