###1. 设置属主和权限

对于/data 目录来说, 由于其是可写的, 因此, 可以在开机过程中, 由 init.rc 脚本来修改其权限和属主, 但是, system.img作为一个只读的文件系统, 并不能这么做

我们可以在生成 data.img 和 system.img 的过程中就设定好其中的文件或者目录的属主和权限, 这些内容在android源码中的 “system/core/include/private/android_filesystem_config.h” 文件中定义

static const struct fs_path_config android_dirs[] = { 
	......
	{ 00771, AID_SYSTEM, AID_SYSTEM, 0, "data/data" },
		{ 00771, AID_SHELL,  AID_SHELL,  0, "data/local/tmp" },
		{ 00771, AID_SHELL,  AID_SHELL,  0, "data/local" },
		{ 01771, AID_SYSTEM, AID_MISC,   0, "data/misc" },
		{ 00770, AID_DHCP,   AID_DHCP,   0, "data/misc/dhcp" },
	......
	{ 00771, AID_SYSTEM, AID_SYSTEM, 0, "data" },
		{ 00750, AID_ROOT,   AID_SHELL,  0, "sbin" },
		{ 00755, AID_ROOT,   AID_SHELL,  0, "system/bin" },
		{ 00755, AID_ROOT,   AID_SHELL,  0, "system/vendor" },
		{ 00755, AID_ROOT,   AID_SHELL,  0, "system/xbin" },
		{ 00755, AID_ROOT,   AID_ROOT,   0, "system/etc/ppp" },
		{ 00755, AID_ROOT,   AID_SHELL,  0, "vendor" },
		{ 00777, AID_ROOT,   AID_ROOT,   0, "sdcard" },
	......
}

可以使用 ‘*’ 号来通配文件或者目录

这里只能指定linux传统的属主和rwx权限, 如果要指定文件或者目录的selinux的客体类型, 则需要修改相应的file_context文件