android 串口提权
16lz
2021-01-24
在项目中要用到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或断电重启。
经过以上操作后,系统每次启动时会自动对串口提权。
软件就不会提示无权限了。
更多相关文章
- APK权限大全 - Android必懂知识
- ContentProvider共享数据和ContentResolver的使用,Uri,UriMatche
- 【Android】第三方QQ账号登录的实现
- Android(安卓)判断系统用户无操作
- 2014年开源夏令营-android下编译libusb和libhackrf
- Android中的进程(Process)和线程(Thread)
- Android系统操作的50个实用技巧
- Android(安卓)串口通信开发笔记3:CMake 方式实现和 多对多的实现
- android网络通信之-Http(Android操作HTTP实现与服务器通信)