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

相关推荐
Mr YiRan2 小时前
网络请求API监控与网络切换埋点
android·网络
美狐美颜sdk6 小时前
直播APP开发技术栈详解:视频美颜SDK、人脸识别与实时渲染
android·人工智能·音视频·美颜sdk·直播美颜sdk
奈斯先生Vector11 小时前
当模型版本不断变化,RelayRouter 能否帮助 AI 应用摆脱深度绑定
android·java·人工智能·开源·aigc
TimeFine11 小时前
让强模型做“总工”,让高性价比模型写代码
android
又见情义13 小时前
RK3568 Android 13 屏蔽 healthd 电池日志经验分享
android
古法安卓16 小时前
Android-Fork 机制详解
android·java·android studio
Android打工仔16 小时前
不要在 Data 层随意把 Cold Flow 转换成 Hot Flow
android·架构·kotlin
峥嵘life17 小时前
2026免费的 opencode 使用分享:Windows端 + 服务器CLI 实战总结
android·大数据·开发语言
杉氧17 小时前
拒绝重复造轮子:我写了一个生产级的 Kotlin 协程与 Flow 工具库(CoroutineKit)
android·kotlin·workflow
恋猫de小郭18 小时前
Flutter GSoC 2026 提案进度解读,补上 DevTools、FFI 和原生平台的关键缺口
android·前端·flutter