Android 的 FS 是仅仅可读的吗?可以修改成可写的属性吗?手头有一块 i.MX51 的开发板,跑的是 Android 2.3, 串口操作,只有 /data 目录是可写的,其它目录全是可读的,可以修改成可读写的属性吗?如果能修改,请问如何修改,有完整的代码。

解决方案 »

  1.   

    修改init rc文件,把mount时的ro熟悉换成rw就可以了
    mount rootfs rootfs / ro remount
    换成
    mount rootfs rootfs / rw remount然后重做固件烧写进去。
      

  2.   

    在串口运行:mount -o remount rw /system也可以,这样不用改Kernel。
      

  3.   

    直接修改init.rc下  RO 改成RW
      

  4.   

    # mount mtd partitions
        # Mount /system rw first to give the filesystem a chance to save a checkpoint
        mount ext4 /dev/block/mmcblk0p2 /system
    #    mount ext4 /dev/block/mmcblk0p2 /system ro wait remount
        mount ext4 /dev/block/mmcblk0p3 /data wait nosuid nodev noatime
        mount ext4 /dev/block/mmcblk0p4 /cache nosuid nodev noatimeon post-fs
        # once everything is setup, no need to modify /
        mount rootfs rootfs / ro remount
      

  5.   

    一般内核都支持YAFFS和EXT4文件格式,这个在配置内核的时候可选
      

  6.   


    这个 init.rc 文件在什么位置?我搜到以下文件$ find -name "init.rc" -print
    ./device/fsl/imx5x/init.rc
    ./device/fsl/imx50_evk/init.rc
    ./device/fsl/imx53_ard/init.rc
    ./device/fsl/imx37_3stack/init.rc
    ./device/fsl/imx53_evk/init.rc
    ./device/fsl/imx31_3stack/init.rc
    ./device/fsl/imx51_bbg/init.rc
    ./device/fsl/imx53_smd/init.rc
    ./device/fsl/imx51_3stack/init.rc
    ./system/core/rootdir/init.rc
    ./build/target/board/generic_x86/init.rc
    ./bootable/recovery/etc/init.rc
    ./bootable/diskinstaller/init.rc
    ./out/target/product/imx51_bbg/root/init.rc
    修改后,还是不能成为 rw 的 rootfs.
    板子跑起来后,/init.rc 文件里 rootfs 部分仍为 ro
    on post-fs
        # once everything is setup, no need to modify /
        mount rootfs rootfs / ro remount那板子里的 /init.rc 这个文件是怎么生成的?
      

  7.   

    mount -o remount -rw rootfs /system/
      

  8.   


    这个方法可行


    # mount -o remount rw /system
    EXT4-fs (mmcblk0p2): warning: mounting fs with errors, running e2fsck is recommended
    EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)



      

  9.   

    mount -o remount -rw rootfs /system/
    这样应该行吧,这个是纯的LINUX的操作。
      

  10.   

    这个文件修改后,还是 ro 状态。
    编译的时候有什么要特别注意的地方吗?如果只是要重新生成 system.img, 有没有简易命令,我是按 doc 里的命令,如下:
    make PRODUCT-imx51_bbg-eng 2>&1 tee build_imx51_bbg_android.log
      

  11.   

    但是, reboot 后,又变回去。
      

  12.   

    ./device/fsl/imx51_bbg/init.rc
    ./system/core/rootdir/init.rc将这两个文件改了。从你的out目录来看,你用的init.rc是
    ./device/fsl/imx51_bbg/init.rc
    ./system/core/rootdir/init.rc
    是android的原始init rc文件。