Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
/dev/i2c文件的Android权限_Android_Linux_Permissions_I2c - Fatal编程技术网

/dev/i2c文件的Android权限

/dev/i2c文件的Android权限,android,linux,permissions,i2c,Android,Linux,Permissions,I2c,我正在Intrinsyc开发工具包Open-Q 845中集成i2c传感器。经过大量研究,我发现最好的方法是修改源代码并在设备树中添加i2c传感器。然而,到目前为止,我们希望避免编译源代码的必要性 预编译的Android 9已经有了i2c总线。可以处理从C程序打开/dev/i2c-0文件的总线。此外,可以使用iotcl功能使用传感器 问题是访问/dev/i2c-0需要根权限。即使我使用chmod命令更改其权限chmod 777/dev/i2c-0也无法从应用程序访问该文件。我倾向于认为这是因为权限

我正在Intrinsyc开发工具包Open-Q 845中集成i2c传感器。经过大量研究,我发现最好的方法是修改源代码并在设备树中添加i2c传感器。然而,到目前为止,我们希望避免编译源代码的必要性

预编译的Android 9已经有了i2c总线。可以处理从C程序打开
/dev/i2c-0
文件的总线。此外,可以使用
iotcl
功能使用传感器

问题是访问
/dev/i2c-0
需要根权限。即使我使用chmod命令更改其权限
chmod 777/dev/i2c-0
也无法从应用程序访问该文件。我倾向于认为这是因为权限组是root。然后,该应用程序不属于该组

它是
/dev/i2c-0
文件的状态:

我发现解决此问题的唯一方法是取消激活SELinux规则,使系统具有许可性:

/system/bin/set0

虽然它可以工作,但我不想激活SELinux模块。我想知道是否可以将
/dev/i2c-0
的权限组更改为仅由我的应用程序使用。也许可以在Android清单中添加权限组,只允许我的应用程序访问i2c总线


提前感谢。

“我想知道是否可以将/dev/i2c-0的权限组更改为仅由我的应用程序使用。”请为设备设置根目录。“可能可以在Android清单中添加权限组,以便仅允许我的应用访问i2c总线”这是不可能的。您需要使用构建Android时使用的平台或发布证书对应用进行签名。然后,您可以修改您的sepolicy。这是一个由两部分组成的过程。1) 更改要访问的特定文件的文件上下文,使其具有唯一类型(如sysfs\u mydevice)。然后2)允许平台或系统应用程序(取决于您使用哪个应用程序签名)允许访问sysfs\u mydevice文件。