格兰特\系统\等写权限的应用程序[打开失败:EROFS]

问题描述:

我有一个问题编辑libnfc-nxp.conf文件是在\system\etc\下,我得到以下错误。格兰特系统等写权限的应用程序[打开失败:EROFS]

/system/etc/libnfc-nxp.conf:打开失败:EROFS(只读文件系统)

语境:我有机会获得AOSP并可以修改OS的一切。 我想开发一个可以修改这个文件的Android应用程序。这个应用程序将在内部使用特定的ENG OS版本。

因此,我知道应用程序无法访问/ system/etc /。 要授予此访问权限,我使用系统sharedUserID并将应用程序签名为system_app。现在,我有一个priviligied应用

U:R:system_app:S0系统

默认情况下,/system/etc/libnfc-nxp.conf权限

-RW -r - R--根根libnfc-nxp.conf

所以,我通过ADB重新装入/系统分区与RW测试,以chown和文件模式文件

CHOWN系统:系统libnfc-nxp.conf

搭配chmod 666 libnfc-nxp.conf

我仍然有同样的问题.. 所以,我希望更新SELinux的到将system_app的{open write}访问授予\ system \ etc下的所有文件。

我改性system_app.tedevice/xxx/sepolicy

userdebug_or_eng(`

允许system_app sysfs的:文件rw_file_perms;

允许system_app system_file:文件{创建开放读写GETATTR SETATTR};

')

我做了一个测试,仍然有同样的问题。 我完成了我想到的一轮可能的想法。你有什么建议吗? 它可以仍然是一个SELinux的问题,因为缺少东西。我不熟悉SELinux?

任何帮助,欢迎。 谢谢。

+0

'/ system'挂载点是只读的。 – odexcide

我还没有解决访问问题。 最后,我改变了继续和更新NFC服务的方式,以查看/ sdcard /文件夹(而不是/ system/etc /)上的conf文件。它避免了许可问题。

感谢您的帮助。

JMC,

首先,你真的重新安装了/ system /吗?如果没有,运行这个命令,看看是否有帮助(注意:这将在重新启动后重置): adb shell mount -o remount,rw/system

这是允许系统访问r/w的关键划分。

如果您仍然有问题,使用该命令禁止的SE Linux的实施方式: 亚行外壳setenforce 0

这应该给你一点一通。您应该在Android Studio中监控您的应用的调试,看看它是否需要其他权限。