device/softwinner/product/BoardConfig.mk
# Enable SquashFS for /system
#BOARD_SYSTEMIMAGE_FILE_SYSTEM_TYPE := squashfs
#BOARD_SYSTEMIMAGE_SQUASHFS_COMPRESSOR := lz4
#BOARD_SYSTEMIMAGE_SQUASHFS_BLOCK_SIZE := 65536
#BOARD_SYSTEMIMAGE_SQUASHFS_COMPRESSOR_OPT := -Xhc
屏蔽这几行 system分区变为ext4
# Enable SquashFS for /vendor
#BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := squashfs
#BOARD_VENDORIMAGE_SQUASHFS_COMPRESSOR := lz4
#BOARD_VENDORIMAGE_SQUASHFS_BLOCK_SIZE := 65536
#BOARD_VENDORIMAGE_SQUASHFS_COMPRESSOR_OPT := -Xhc
BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := ext4
加入此行才可以 不然不会编译 vendor.img
TARGET_COPY_OUT_VENDOR := vendor
此外,system分区将挂载为只读
需修改内核代码:
//int root_mountflags = MS_RDONLY | MS_SILENT;
int root_mountflags = MS_SILENT;
另外还需修改fstab.sun8iw15p1
#/dev/block/by-name/system / squashfs ro,barrier=1 wait,recoveryonly
/dev/block/by-name/system / ext4 rw wait
这一句应该没有作用 根文件系统挂载是通过内核命令行传递过来的 不会再根据这个话 重新挂载
至于vendor则需要修改 内核的dtsi文件 arch/arm/boot/dts/product.dtsi
vendor {
compatible = "android,vendor";
dev = "/dev/block/by-name/vendor";
fsmgr_flags = "wait";
mnt_flags = "rw,barrier=1";
name = "vendor";
status = "ok";
type = "ext4";
};
至此,文件系统从根到 vendor目录 都可以直接写入和删除了
对于框架的调试方便多了 不需要整编android img了。