Android 修改文件默认权限

做系统开发,有时候需要读取某些原生文件内容,当权限不足时,一般做法是:

  1. 使用 chmod 命令修改文件权限;
  2. 修改目标文件的默认权限

1.使用 chmod 命令修改文件权限

使用代码执行 chmod 命令,

private void chmodFile(File destFile) {
		try {
			String command = "chmod 666 " + destFile.getAbsolutePath();
			Runtime runtime = Runtime.getRuntime();
			Process proc = runtime.exec(command);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

如果是 app 自己创建的的文件,一般没问题;
如果目标文件是编译后产生的文件,可能需要系统权限才能操作;
如果目标文件是以只读方式挂载的,则此方法会失效;

2.修改目标文件的默认权限

2.1 修改 system/core/libcutils/fs_config.c 文件,如将 vendor/build.prop 文件权限由 600 改为 644 ,使其可读可写,

static const struct fs_path_config android_files[] = {
	//省略部分代码
-   { 00600, AID_ROOT,      AID_ROOT,      0, "vendor/build.prop" },
+	{ 00644, AID_ROOT,      AID_ROOT,      0, "vendor/build.prop" },
	//省略部分代码
}

2.2 修改 device/xxx/xxx/init.m7221.rc 文件,如 chown 修改权限组, chmod 修改权限值,

on boot
+    chown system system /test/test.txt
+    chmod 0777 /test/test.txt

在如下文件中也可以添加类似修改

device/xxx/xxx/init.rc
system/core/rootdir/init.rc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值