root以外のユーザーとしてAndroid Chromeでデバッグする

root以外のユーザーとしてAndroid Chromeでデバッグする

USB経由で私のボックスに接続されているAndroidデバイスで、Google Chromeに表示されているウェブサイトをデバッグしようとしています。この目的のために、リモートデバッグプロトコルは、Google ChromeとChromiumのデスクトップ版で実装されています。これは質問の文脈ですが、私の質問の本質ではありません。

ChromeとDevToolsがrootとして実行されると、デスクトップクロームはUSB接続のandroid-chromeと通信できます。/devroot以外のユーザーには、一部の文字デバイスへの読み取り/書き込みアクセス権がないようです。だからChromeを実行するとヤロスラフ、USBデバイスのリストが空です。

ルートとして検出されたデバイス:

スーパーユーザーはUSBを読むことができます。

一般ユーザーには機器が不足しています。

root以外のユーザーは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です。

要約する:

  1. USB通信に関するシステムコールは何ですか?
  2. /devユーザーにアクセスを許可するにはどのノードが必要ですか?

関連情報