重新解压打包android 根文件系统 ramdisk.img
1. ramdisk.img文件gzip压缩文件, 所以要用gunzip命令解压缩. 但是gunzip需要默认后缀名.gz才可以正常解压, 不然会被忽略对待.
(源文件类型) ramdisk.img: gzip compressed data, from Unix
2. 解压后名字会自动去掉.gz后缀,并重命名为ramdisk.img, 这时候文件类型为
ramdisk.img: ASCII cpio archive (SVR4 with no CRC)
3. 这时候就可以用cpio命令从ramdisk.img里面解压出跟文件系统的文件了, 所以建议新建一个目录来做
mkdir aaa
进入到目录里面
cpio -i -F ../ramdisk.img
OK, 成功解压, 可以随便更改定制自己的跟文件系统了, init.rc随便你改吧
4. 定制好了之后开始重新打包了
cpio -i -t -F ../ramdisk.img > list
cpio -o -H newc -O new.img < list
好了,打包好新的ramdisk.img了, 名字为new.img, 但是这时候还不能直接跑起来, 为什么呢?
看看文件类型吧
new.img: ASCII cpio archive (SVR4 with no CRC)
跟上面解压后的ramdisk.img一样, 所以这时候还差一步,就是重新用gzip 压缩
gzip new.img
搞定.
文件类型为
new.img.gz: gzip compressed data, was "new.img", from Unix, last modified: Mon Dec 24 10:59:51 2012
然后重新命名为ramdisk.img
mv new.img.gz ramdisk.img
5. 好了, 有板子的就重新烧录ramdisk.img文件, 没板子的也可以运行模拟器了.
emulator -ramdisk ./ramdisk.img -system ./system.img -data ./userdata.img -sdcard (可选)
整理一下命令吧
cp ramdisk.img ramdisk.img.gz
gunzip ramdisk.img.gz
mkdir aaa
cd aaa
cpio -i -F ../ramdisk.img
(解压完毕, 定制自己的根文件系统)
cpio -i -t -F ../ramdisk.img > list
cpio -o -H newc -O new.img < list
gzip new.img
mv new.img.gz ramdisk.img
cp ramdisk.img ../ramdisk.img (覆盖原来的ramdisk, 可选)
emulator -ramdisk ./ramdisk.img -system ./system.img -data ./userdata.img