zhongxichuan 2014-10-22 09:02 采纳率: 0%
浏览 1291

android 平台下可否根据VID/PID配置赋予路径权限

请问一下,USB设备(假设VID=0X05A9,PID=0X1234)插入Android后,USB路径可能是 /dev/bus/usb/003/010, 但是这个路径没有写权限,在系统集成的时候怎么配置指定VID/PID的路径读写权限呢 ?

比较笨的方法是ueventd.rc文件里面分别列出可能的path,但是这样就把其他VID PID的路径也给了权限,存在风险。
/dev/bus/usb/001/0* 0666 root usb
/dev/bus/usb/001/1* 0666 root usb
/dev/bus/usb/001/2* 0666 root usb
/dev/bus/usb/002/0* 0666 root usb
/dev/bus/usb/002/1* 0666 root usb
/dev/bus/usb/002/2* 0666 root usb

/dev/bus/usb/003/0* 0666 root usb
/dev/bus/usb/003/1* 0666 root usb
/dev/bus/usb/003/2* 0666 root usb
请问该怎么根据VID PID赋予这个权限?谢谢

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-02 22:56
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    在Android中,你可以使用以下步骤来为特定的VID和PID设置读写权限:

    1. 首先,你需要创建一个包含这些VID和PID的列表。这可以通过以下代码完成:
    echo "VID=0x05A9,PID=0x1234" > /sys/class/tty/usb_path_allowlist
    

    这将添加一个新的行到/sys/class/tty/usb_path_allowlist目录,其中包含了你的VID和PID。

    1. 然后,你可以在系统启动时自动加载这条允许列表。你可以通过以下代码实现这一点:
    sudo tee -a /etc/rc.local >> /dev/null << EOF
        if [ ! -f "/sys/class/tty/usb_path_allowlist" ]; then
            echo "Allow USB devices with VID/PID 0x05A9 and PID 0x1234 to be mounted as read/write." >> /sys/class/tty/usb_path_allowlist
            chmod 644 /sys/class/tty/usb_path_allowlist
        fi
    EOF
    
    1. 最后,确保你的应用程序能够访问这个文件。例如,如果你正在使用adb命令行工具,你可以使用以下命令:
    adb shell <command>
    

    注意:在执行任何修改文件或目录权限的操作之前,请确保你有正确的权限,并且操作不会影响到系统的正常运行。

    评论

报告相同问题?