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. 使用Android Studio对Android系统源码进行单步调试
  2. Android源码个个击破之Context和Activity的启动流程
  3. Android:android sdk源码中怎么没有httpclient的源码了
  4. Android开发——本地存储、用户权限获取
  5. 简单分析Android中添加shortcut方面的源码
  6. Android中应用程序如何获得系统签名权限
  7. Android 开发获取通知栏权限时会出现两个应用图标
  8. 在Eclipse查看Android源码
  9. Ubuntu完美下载Android源码

随机推荐

  1. mall整合SpringBoot+MyBatis搭建基本骨架
  2. mall整合Mongodb实现文档操作
  3. mall整合Swagger-UI实现在线API文档
  4. mall整合Redis实现缓存功能
  5. mall整合RabbitMQ实现延迟消息
  6. mall整合SpringSecurity和JWT实现认证和
  7. mall整合OSS实现文件上传
  8. mall在Windows环境下的部署
  9. Navicat实用功能:数据备份与结构同步
  10. mall整合SpringSecurity和JWT实现认证和