【问题标题】:Grant \system\etc write access from a priviligied app [open failed: EROFS]从特权应用授予 \system\etc 写访问权限 [打开失败:EROFS]
【发布时间】:2016-05-13 09:56:57
【问题描述】:

我在编辑 \system\etc\ 下的 libnfc-nxp.conf 文件时遇到问题,我收到以下错误。

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

上下文:我可以访问 AOSP,并且可以修改操作系统上的所有内容。 我想开发一个可以修改这个文件的 Android 应用程序。此应用将在内部与特定的 ENG 操作系统版本一起使用。

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

u:r:system_app:s0 系统

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

-rw-r--r-- root root libnfc-nxp.conf

所以,我通过 adb 测试了用 rw 重新挂载 /system 分区,以 chown 和 chmod 文件

chown system:system libnfc-nxp.conf

chmod 666 libnfc-nxp.conf

我仍然有同样的问题.. 因此,我希望更新 SElinux 以授予 system_app 对 \system\etc 下所有文件的 {open write} 访问权限。

我在device/xxx/sepolicy下修改了system_app.te

userdebug_or_eng(`

允许 system_app sysfs:file rw_file_perms;

allow system_app system_file:file {create open read write getattr setattr };

')

我做了一个测试,仍然有同样的问题。 我做了一轮我想到的可能的想法。你有什么建议吗? 是否仍然是 SELinux 问题,因为缺少某些内容。我对 SELinux 不熟悉?

欢迎任何帮助。 谢谢。

【问题讨论】:

  • /system 安装点是只读的。

标签: android android-source


【解决方案1】:

江铃,

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

这是允许对系统分区进行 r/w 访问的关键。

如果您仍然遇到问题,请使用以下命令禁用 SE Linux 的强制模式: adb shell setenforce 0

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

【讨论】:

    【解决方案2】:

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

    感谢您的帮助。

    【讨论】:

      猜你喜欢
      • 2019-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多