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

來源: busybox及bash在android中的安裝及init.rc修改

 

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


安裝busybox及bash
busybox 下載地址: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 增加的環境變量及路徑已經生效。

huenlil 發表在 痞客邦 PIXNET 留言(0) 人氣()