我正在构建一个基于Android的“嵌入式”系统,目前正试图实现音频模块固件更新。已经有一个二进制文件可以执行此操作,但问题是它需要root权限才能运行(否则无法访问GPIO)。因此,现在的问题转化为如何给予该可执行文件(仅此可执行文件,不得完全获得root权限)root权限。我已经尝试了几天,并尝试了一些方法,但没有成功。我已经尝试过以下方法:
编辑: 我没有成功使二进制文件以root身份运行,但是我能够在init.rc中从启动后运行shell脚本,那里有root权限,并导出/更改我需要的特定gpio的权限,这使得以后无需root访问即可访问该文件。
- https://dev59.com/-GYr5IYBdhLWcg3wR4Qs#13892057(我已经这样做了,但仍然没有root权限。我认为这是因为自Android 4.3以来禁用了setuid/setgid程序)
- 在某个地方阅读到可以创建一个系统服务,调用它并在那里运行需要root权限的代码。按照此指南创建系统服务,但结果发现它没有root权限。
编辑: 我没有成功使二进制文件以root身份运行,但是我能够在init.rc中从启动后运行shell脚本,那里有root权限,并导出/更改我需要的特定gpio的权限,这使得以后无需root访问即可访问该文件。