栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Android串口通信权限

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android串口通信权限

1、如何知道是哪个串口设备?

策略:一个一个试(/dev/ttyxxx)

  • adb shell
  • su 切到root 
  • echo 123 > ttyxxx
  • 用串口调试助手看有没有输出

2、串口没有权限怎么办?

crw------- 1 root      root        4,  68 2017-08-05 09:00 ttyS4

如上图,普通用户没有rw的权限

两种方案

  • 系统固件ttyS4默认配置改为777
    • 这个直接让固件管理员做个固件即可
  • 应用程序获取root权限,修改ttyS4权限
    • Runtime.getRuntime().exec("/system/xbin/su")
    • 如果系统中su文件的权限是    -rwsr-sr-x root shell,则上面的方式可以直接获得root权限
    • 如果su权限是这样的:-rwsr-x--- root shell,则应用程序无法获得root权限(system权限的应用也不行),还需要修改固件
    • 有了root权限后,再执行修改ttyS4的权限即可
              if (!device.canRead() || !device.canWrite()) {
                  try {
                      
                      Process su;
                      su = Runtime.getRuntime().exec("/system/xbin/su");
                      String cmd = "chmod 666 " + device.getAbsolutePath() + "n"
                              + "exitn";
                      su.getOutputStream().write(cmd.getBytes());
                      if ((su.waitFor() != 0) || !device.canRead() || !device.canWrite()) {
                          throw new SecurityException();
                      }
                  } catch (Exception e) {
                      e.printStackTrace();
                      throw new SecurityException();
                  }
              }

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/324633.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号