USB를 통해 내 상자에 연결된 Android 장치에서 Google Chrome에 표시된 웹 사이트를 디버깅하려고 합니다. 이를 위해 원격 디버깅 프로토콜은 Google Chrome 및 Chromium의 데스크톱 버전에서 구현됩니다. 이것이 질문의 맥락이지만 내 질문의 본질은 아닙니다.
Chrome 및 DevTools가 루트로 실행되면 데스크톱 크롬은 USB로 연결된 android-chrome과 통신할 수 있습니다. /dev
루트가 아닌 사용자에게 일부 문자 장치에 대한 읽기/쓰기 액세스 권한이 없는 것 같습니다 . 그래서 Chrome을 실행하면야로슬라프, USB 장치 목록이 비어 있습니다.
루트로 감지된 장치:
일반 사용자에게는 장비가 부족합니다.
스테이스가 구출하러 옵니다(?)
애플리케이션(데스크톱 Chrome)이 내 시스템에서 어떤 리소스에 액세스하려고 하는지 확인하고 싶지만 플랫폼에 대한 지식이 제한되어 있으므로 무엇을 찾아야 할지에 대한 조언이 필요합니다. 다음은 애플리케이션에서 사용되는 고유 시스템 호출 목록입니다. 다음 중 USB 장치와의 통신/협상 통화가 무엇인지 알고 계십니까?
access getrandom rename
arch_prctl getresgid rt_sigaction
bind getresuid rt_sigprocmask
brk getsockname rt_sigreturn
clock_getres gettid sched_getparam
clone ioctl sched_getscheduler
close listen sendmsg
connect lseek sendto
creat lstat setpriority
dup mkdir set_robust_list
eventfd2 mmap setsockopt
execve mprotect set_tid_address
fadvise64 mremap shutdown
fallocate msync socket
fcntl munmap socketpair
fstat open stat
fstatfs pipe statfs
ftruncate poll symlink
futex prctl sysinfo
getdents prlimit64 uname
geteuid read unlink
getpeername readlink wait4
getpid recvfrom write
getpriority recvmsg writev
내 생각에 Chrome은 USB 장치를 검색할 수 있다고 생각합니다(약 80개 호출).
open("/sys/bus/pci/devices/0000:**:**.*/ \
{class,device,irq,resource,vendor}", O_RDONLY) = 153
하지만 에는 없습니다 /dev
. 그러면 일반 사용자가 읽으려면 어떤 장치를 열어야 합니까?
내 콘텐츠는 다음과 같습니다 /dev
.
# ls -l hidraw* bus/usb/*/*
crw-rw-r-- 1 root usb 189, 0 180418 17:53 bus/usb/001/001
crw-rw-r-- 1 root usb 189, 1 180418 17:53 bus/usb/001/002
crw-rw-r-- 1 root usb 189, 128 180418 17:53 bus/usb/002/001
crw-rw-r-- 1 root usb 189, 129 180418 17:53 bus/usb/002/002
crw-rw-r-- 1 root usb 189, 256 180418 17:53 bus/usb/003/001
crw-rw-r-- 1 root usb 189, 257 180418 17:53 bus/usb/003/002
crw-rw-r-- 1 root usb 189, 258 180418 17:53 bus/usb/003/003
crw-rw-r-- 1 root usb 189, 259 180418 17:53 bus/usb/003/004
crw-rw-r-- 1 root usb 189, 260 180418 17:53 bus/usb/003/005
crw-rw---- 1 root plugdev 189, 263 180419 10:47 bus/usb/003/008
crw-rw-r-- 1 root usb 189, 384 180418 17:53 bus/usb/004/001
crw-rw-r-- 1 root usb 189, 385 180418 17:53 bus/usb/004/002
crw------- 1 root root 251, 0 180418 11:32 hidraw0
crw------- 1 root root 251, 1 180418 11:32 hidraw1
crw------- 1 root root 251, 2 180418 11:32 hidraw2
어쩌면 내가해야 할 일은 추가하는 것뿐입니다.야로슬라프도착하다플러그 개발자그룹? 그건 그렇고, 이것은 udev 236이 포함된 Linux 4.12.12입니다.
요약하다:
- USB 통신과 관련된 시스템 호출은 무엇입니까?
/dev
사용자에게 액세스 권한을 부여하려면 어떤 노드가 필요합니까?