如何在基于android的自定义开发板上进行root或GPIO访问

时间:2018-03-23 14:13:54

标签: android linux embedded root selinux

我有这个开发板Open-Q 820

它基于来自CodeAurora的某些来源运行Android 7.0(似乎基于AOSP来源)。似乎它使用无法更改的专有引导加载程序。我需要从我的Android应用程序访问GPIO(/ system / class / gpio)来控制外部设备。问题是我无法从Android应用程序执行此操作 - 似乎只有root可以访问此文件。 我可以从PC调用“adb root”命令,然后从“adb shell”调用类似

的内容
echo 0 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio0/direction
echo 1 > /sys/class/gpio/gpio0/value

它正在发挥作用。但我需要从我的Android应用程序做同样的事情。我知道如何从Android应用程序访问终端和su。我只是不知道如何root自定义设备。我尝试手动安装SuperSU.apk应用程序及其相应的su本机应用程序。它开始并说它需要更新su二进制文件。安装二进制文件并重新启动系统后,它就会破碎 - 无限的android徽标。如果我没有安装二进制文件更新,那么SuperSU可以授予我的应用程序权限,但是实际应用程序仍然无法使用su(我不知道为什么 - 我在我的应用程序中使用此库:https://github.com/Chrisplus/RootManager)。重启后SuperSU不能再工作了。 所以你可能知道一些SuperSU替代品(Knigroot也不行)或者如何正确安装一些超级用户管理应用程序。或者可能是我可以直接使用su(我试过但我的应用程序无权访问/ system / xbin / su)。或者可能是我可以通过Android应用程序以某种方式使/ sys / class / gpio可访问(我尝试了chmod 777 - 不起作用)。可能是SElinux的一些权利,但我没有这方面的经验。

谢谢

1 个答案:

答案 0 :(得分:0)

Magisk帮助了我。因为它可以选择修补自定义启动映像。我使用了这个选项,现在root访问工作正常。