九鼎创展论坛

标题: android平台init.rc脚本修改-基于x210开发板 [打印本页]

作者: armeasy    时间: 2011-12-19 09:33
标题: android平台init.rc脚本修改-基于x210开发板
   有时我们在调试时需要修改init.rc文件,如果每次都编译系统映像,会很浪费时间。我们知道,init.rc是
打包在android.img.cpio文件中的,那么,我们是否可以只改这个文件,然后将它更新到xboot中不就可以了吗?
   这里编写了一个修改脚本android_cpio.sh,内容如下:

#!/bin/bash
# create: armeasy
# date:   2011-12-16
# mail:   phosphor88@163.com

echo "Modify the android.img.cpio"
echo "1.unzip the image"
echo "2.Create the image"
echo "3.exit"

SOURCE_DIR=$(cd `dirname $0` ; pwd)
TOOLS_DIR=${SOURCE_DIR}/tools/
TARGET_DIR=${SOURCE_DIR}/out/release/

read -p "Choose:" CHOOSE

if [ "1" = ${CHOOSE} ];then
        echo "unzip android.img.cpio"
        cd ${TARGET_DIR}
        [ -e "tmp" ] ||{ echo "mkdir tmp"; mkdir tmp;}
        [ -e "android.img.cpio" ] || { echo "error!can't find andaroid.img.cpio!"; exit; }
        cd tmp
        cpio -idmv --no-absolute-filenames < ../android.img.cpio
        echo "^_^ unzip android.img.cpio finished!"
        exit

elif [ "2" = ${CHOOSE} ];then
        echo "create android.img.cpio test"
        [ -e "${TARGET_DIR}/tmp" ] || { echo "can't find [tmp],please unzip android.img.cpio first!"; exit; }
        rm -f ${TARGET_DIR}/cpio_list
        rm -f ${TARGET_DIR}/android.img.cpio
        $TOOLS_DIR/gen_initramfs_list.sh ${TARGET_DIR}/tmp > ${TARGET_DIR}/cpio_list || { exit; }
        $TOOLS_DIR/gen_init_cpio ${TARGET_DIR}/cpio_list > ${TARGET_DIR}/android.img.cpio || { exit; }
        rm -rf ${TARGET_DIR}/tmp
        echo "^_^ Create android.img.cpio finished!"
        exit
elif [ "3" = ${CHOOSE} ];then
        exit
fi

    将它放在android根目录,即和mk在同一个目录下,执行它,输入1时,将会解压out/release目录下的android.img.cpio 文件到
out/release/tmp目录,这时我们手动修改out/release/tmp/init.rc文件,再次运行该脚本,输入3,这时将会把解压的文件打包成
android.img.cpio文件,存放在out/release目录。
    再将android.img.cpio拷贝到内核根目录下,执行./mk -k -x更新xboot.bin,即完成了init.rc的修改。

附:android_cpio.sh脚本
android_cpio.sh (1.16 KB, 下载次数: 30)


作者: raymon    时间: 2012-7-15 14:25
學習中......




欢迎光临 九鼎创展论坛 (http://bbs.9tripod.com/) Powered by Discuz! X3.2