在使用Android1.0的sdk碰到一个问题,用emulator启动后,system目录是Read-Only的,对使用native c很不方便,因为编译好的.so文件需要push到/system/lib下,再通过System.load加载。
需要通过修改init.rc启动脚本使/system可读可写
具体步驟是:
1.解压ramdisk.img
在sdk的tools/lib/images下有四个镜像,即:
kernel-qemu(内核)
ramdisk.img(rootfs)
system.img,userdata.img(在启动是挂载到rootfs)
#################################
#extract.sh
#bin!sh
sudo gzip -dc ramdisk.img > android_rootfs.img
mkdir -p android_rootfs
sudo chmod ugoa+rwx android_rootfs*
cd android_rootfs
sudo cat ../android_rootfs.img | sudo cpio -i
#################################
2.修改init.rc
# Mount /system rw first to give the filesystem a chance to save a checkpoint
mount yaffs2 mtd@system /system
#注释掉这句
#mount yaffs2 mtd@system /system ro remount
3.创建ramdisk.img
#################################
#make.sh
#bin!sh
cd android_rootfs
sudo find | cpio -H newc -o | gzip -9 > ../dest.img
cd ..
mv ramdisk.img ramdisk_old.img
mv dest.img ramdisk.img
#################################
4.启动emulator
#emulator
注意每次启动前最好把.android下的内容删除
阅读(1305) | 评论(0) | 转发(0) |