3588 Android 串口软件提示“没有串口读写权限”

3588 Android 串口软件提示"没有串口读写权限"

  • 作者:吴思含(Witheart)
  • 更新时间:20250613

概要:本文介绍了在 RK3588 Android 系统中,配置串口设备后,部分串口在使用串口调试软件时提示"没有串口读写权限"的问题。通过分析 /dev/ 目录下设备权限以及系统配置文件,最终定位到 ueventd.rockchip.rc 配置被其他 rc 文件覆盖,并提供了解决方法和参考补丁代码。


1. 问题背景

在 RK3588 的 Android 系统中,串口已经通过设备树和 ueventd.rockchip.rc 文件进行配置,启动系统后能在 /dev/ 目录下看到 ttyS* 串口设备。使用安卓串口调试软件(如 comAssistant)进行测试时,发现部分串口可以正常使用,而另一些串口则提示"没有串口读写权限"。

尽管所有串口的配置看起来一致,还是出现了权限差异的问题。


2. 问题排查

切换到 /dev 目录并查看串口设备权限:

bash 复制代码
cd /dev
ls -l ttyS*

输出示例:

复制代码
crw-rw---- 1 bluetooth net_bt 4,  64 2025-06-13 03:01 ttyS0  
crw-rw-rw- 1 system    system 4,  67 2025-06-13 03:01 ttyS3  
crw-rw-rw- 1 system    system 4,  70 2025-06-13 03:01 ttyS6  
crw-rw---- 1 bluetooth net_bt 4,  71 2025-06-13 03:01 ttyS7  
crw-rw---- 1 bluetooth net_bt 4,  73 2025-06-13 03:01 ttyS9  

可以看到:

  • 权限为 crw-rw---- 的串口设备对应的所有者是 bluetooth,组是 net_bt。
  • 权限为 crw-rw-rw- 的串口设备所有者是 system,组是 system。

这表明权限不足的串口设备,其权限被设为了仅限 bluetooth 用户组访问。

进一步排查配置文件,怀疑 ueventd.rockchip.rc 中的设置被其他文件覆盖。

使用 grep 查找其他相关配置:

bash 复制代码
grep -irn "device/rockchip/common" -e "ttyS9"

结果:

复制代码
device/rockchip/common/init.connectivity.rc:24:    chmod 0660 /dev/ttyS9  
device/rockchip/common/init.connectivity.rc:33:    chown bluetooth net_bt /dev/ttyS9  

确认 init.connectivity.rc 文件也对 ttyS9 做了权限和所有者设置,覆盖了之前 ueventd.rockchip.rc 中的设置。


3. 解决方法

在 device/rockchip/common 目录下,依次查找所有串口设置,并屏蔽掉会影响权限的配置。

示例命令:

bash 复制代码
grep -irn "device/rockchip/common" -e "ttyS0"
grep -irn "device/rockchip/common" -e "ttyS3"
grep -irn "device/rockchip/common" -e "ttyS6"
...

通过注释掉 init.connectivity.rc 中相关串口的设置,避免覆盖 ueventd.rockchip.rc 中的权限配置。


4. 参考代码

diff 复制代码
diff --git a/device/rockchip/common/car/ueventd.rockchip.rc b/device/rockchip/common/car/ueventd.rockchip.rc
index 148fd44047..36957fd5bf 100755
--- a/device/rockchip/common/car/ueventd.rockchip.rc
+++ b/device/rockchip/common/car/ueventd.rockchip.rc
@@ -53,12 +53,12 @@
 /dev/compassirq           0660   system     system
 
 # for GPS
-/dev/ttyS7                0600   gps        gps
+#/dev/ttyS7                0600   gps        gps
 /dev/gps                  0660   gps        gps
 
 # for BT
 /dev/vflash               0660   bluetooth  net_bt
-/dev/ttyS0                0660   bluetooth  net_bt
+#/dev/ttyS0                0660   bluetooth  net_bt
 /dev/ttyS1                0660   bluetooth  net_bt
 /dev/ttyS2                0660   bluetooth  net_bt
 /dev/rtk_btusb            0660   bluetooth  net_bt
diff 复制代码
diff --git a/device/rockchip/common/init.connectivity.rc b/device/rockchip/common/init.connectivity.rc
index 5617e3667d..d143536298 100755
--- a/device/rockchip/common/init.connectivity.rc
+++ b/device/rockchip/common/init.connectivity.rc
@@ -17,18 +17,18 @@ on zygote-start
     chown bluetooth net_bt ro.bt.bdaddr_path
     setprop ro.bt.bdaddr_path "/data/misc/bluetooth/bdaddr"
 
-    chmod 0660 /dev/ttyS0
+#    chmod 0660 /dev/ttyS0
     chmod 0660 /dev/ttyS1
-    chmod 0660 /dev/ttyS7
+#    chmod 0660 /dev/ttyS7
     chmod 0660 /dev/ttyS8
     chmod 0660 /dev/ttyS9
     chmod 0660 /dev/vflash
     chmod 0664 /dev/vendor_storage
     chown bluetooth net_bt /dev/vflash
     chown bluetooth net_bt /dev/vendor_storage
-    chown bluetooth net_bt /dev/ttyS0
+#    chown bluetooth net_bt /dev/ttyS0
     chown bluetooth net_bt /dev/ttyS1
-    chown bluetooth net_bt /dev/ttyS7
+#    chown bluetooth net_bt /dev/ttyS7
     chown bluetooth net_bt /dev/ttyS8
     chown bluetooth net_bt /dev/ttyS9
     chown bluetooth net_bt /sys/class/rfkill/rfkill0/type

相关推荐
搭贝1 小时前
国资报送责任制怎么建?三级责任矩阵设计
android·数据库·人工智能·线性代数·低代码·矩阵·制造
hunterandroid2 小时前
[鸿蒙从零到一] ArkUI 声明式渲染管线深度解析:Diff、复用与局部刷新
android
林栩link3 小时前
【车载 Android】从 AAR 到 Plugin:Launcher 卡片插件化解耦实践
android
小小测试开发3 小时前
RAG应用评测:从指标体系到LLM-as-a-Judge的自动化落地
android·运维·人工智能·自动化
paopao_djshddhdj3 小时前
钉钉与钉钉服务商有什么区别?为什么建议选择服务商
android·钉钉
xcLeigh3 小时前
Go入门:rune与byte的区别和使用场景
android·javascript·golang
恋猫de小郭4 小时前
Firebase 如何让全球 Android 和 Flutter 开发者集体 Build Fail
android·前端·flutter
我命由我123454 小时前
Android Camera - 获取当前设备屏幕的旋转角度、保存帧到外部存储的私有空间
android·java·开发语言·java-ee·android jetpack·android-studio·android runtime
DogDaoDao5 小时前
HarmonyOS 深度解析:从微内核到 ArkTS 工程实战
android·linux·ios·华为·程序员·harmonyos·harmonyos next