Android串口编程 8.1 Rk3288

8.0以后,串口访问越来越麻烦,各种权限受限,把这两天遇到的麻烦Mark一下,希望同行看见后有所借鉴。
关于权限,我总结了下,主要有三点:
1、app 要有系统权限
在AndroidManifest.xml里加上
android:process=“system”
android:sharedUserId=“android.uid.system”
不过这样的话,app就要放到源码里编译了。
2、 /dev/ttyS4要有读写权限 (你的串口不一定是这个ttyS4)
ls -l /dev/ttyS4
如果没有读写权限,记得在init.rc里面添加
chmod 777 /dev/ttyS4
3、做完上面两步,本来想这会该有访问权限了吧,结果还是拒绝访问,一脸的懵逼。
后来想起来有可能是selinux搞得鬼,然后将selinux设为 permissive模式以后,终于可以通讯了。
不过每次adb shell输入setenforce 0 还是不爽,
我们在源码里访问权限加上。
可以参考 https://blog.csdn.net/huangyabin001/article/details/79290382
我这里具体的更改为
Rk3288/system/sepolicy/private/system_app.te
加上这么两句话
allow system_app serial_device:chr_file { open read write ioctl getattr };
allow system_app proc_stat:file { getattr };
这样那些自己驱动里创建的设备节点也就可以访问了。
然后mmm sepolicy。
串口的操作用的是android-serialport-api ,只不过我的代码里将ndk-build改成了cmake,如果不会操作,一搜一大把。
开发环境 androidStudio ndk cmake

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值