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