android 串口提权

在项目中要用到android主板的RS232串口对设备进行控制,在测试过程发现要对串口进行提权才能操作。主板是3399PRO搭载android 9.0。系统有adb的root权限。如果只是单次操作,可以直接使用ADB root对串口进行提权,然后就可以进行串口操作了。

adb root

adb shell

# chmod 666 /dev/ttysWK9

这样代码就可以操作串口。

但系统重启后又会失去权限。

设备在使用过程中不可能每次都用adb root进行提权。

仔细分析了android启动过程,发现可以在init.rc中做文章。

1、前提是有adb root权限。
2、使用adb root提权后
3、使用adb shell进入shell命令行,将init.rc备份 cp init.rc init.rc.bak
4、将根目录下的init.rc下载来下
    adb pull /init.rc d:/
5、编辑init.rc,注意不要使用中文,也不要转码
    在on boot这一节的最后加入,关于init.rc可以参考《Android系统启动——3init.rc解析》
        chmod 666 /dev/ttysWK9
    保存
6、将init.rc上传到根目录下,替换原来的
    adb push d:/init.rc /
7、检查init.rc是否已经添加ttysWK9的权限修改
    cat init.rc|grep ttysWK1
8、重启设备 reboot或断电重启。

经过以上操作后,系统每次启动时会自动对串口提权。

软件就不会提示无权限了。

你可能感兴趣的:(android)