问题描述
尝试通过 microchip 24XXX USB 集线器将 iPhone 连接到 Android Auto OS。设备能够成功通过角色切换。之后,Android Auto 尝试在设备模式下连接 USB 集线器,USB 权限失败。它不是在框架中发生,而是在 libusb 的“libusb_open_device_with_vid_pid()”的底层模块中发生。
Logfile : 查找关键字:Roleswitch,iAP2,iap2_open,libusb_open_device_with_vid_pid Failed with 0424 and 4911
这是我通过 adb shell 调用的 lsusb:
Bus 003 Device 001: ID 1d6b:0002
Bus 002 Device 002: ID 0424:4915
Bus 001 Device 001: ID 1d6b:0002
Bus 002 Device 003: ID 0424:49a0
Bus 004 Device 001: ID 1d6b:0003
Bus 002 Device 001: ID 1d6b:0001
Bus 002 Device 010: ID 0424:4911 <---- this is the device which is failing.
nautilus:/ # ls -l /dev/bus/usb/*
/dev/bus/usb/001:
total 0
crw-rw---- 1 root usb 189,0 2021-02-09 14:42 001
/dev/bus/usb/002:
total 0
crw-rw---- 1 root usb 189,128 2021-02-09 14:42 001
crw-rw---- 1 root usb 189,129 2021-02-09 22:22 002
crw-rw---- 1 root usb 189,130 2021-02-10 15:42 003
crw-rw---- 1 root usb 189,137 2021-02-10 15:42 010 --- this is my device.
/dev/bus/usb/003:
total 0
crw-rw---- 1 root usb 189,256 2021-02-09 14:42 001
/dev/bus/usb/004:
total 0
crw-rw---- 1 root usb 189,384 2021-02-09 14:42 001
根据日志,除了一些 sepolicy 拒绝之外,我找不到任何线索可能是什么问题,
mfid : type=1400 audit(0.0:1029): avc: denied { open } for path="/dev/i2c-5" dev="tmpfs" ino=13334 scontext=u:r:watchdogd:s0 tcontext=u:object_r:i2c_device:s0 tclass=chr_file permissive=1
mfid : type=1400 audit(0.0:1030): avc: denied { ioctl } for path="/dev/i2c-5" dev="tmpfs" ino=13334 ioctlcmd=0x703 scontext=u:r:watchdogd:s0 tcontext=u:object_r:i2c_device:s0 tclass=chr_file permissive=1
Binder:4509_4: type=1400 audit(0.0:1031): avc: denied { read } for name="usb" dev="tmpfs" ino=8011 scontext=u:r:system_app:s0 tcontext=u:object_r:usb_device:s0 tclass=dir permissive=1
我已经尝试在 /device/vendor/hardware/ueventd.hardware.rc
中添加一些权限/dev/i2c-5 0666 media media
/dev/bus/usb 0666 root usb
还尝试将包包含在 permission/privapp-permissions-hardware.xml
<privapp-permissions package="com.sample.mirroring.control.service">
<permission name="android.permission.MANAGE_USB"/>
</privapp-permissions>
sepolicy/vendor/file_contexts
/dev/i2c-5 u:object_r:i2c_device:s0
/dev/bus/usb u:object_r:usb_device:s0 /sys/devices/platform/soc/ee000000.usb/usb3/busnum u:object_r:sysfs:s0
尝试执行生成这些缺失策略的 audit2allow。 sepolicy/vendor/system_app.te
allow system_app shell_data_file:dir search;
allow system_app system_app_data_file:sock_file { create getattr setattr };
allow system_app system_data_file:dir { add_name };
问候 PK。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)