為使用者訪問設置 adb
我最近購買了一部 Android 手機(我的第一部)。這可能與問題無關,但它是執行 Android 4.4.2 的 Micromax Canvas Hue AQ5000。
我想從目前執行 Debian wheezy 的電腦上訪問電話。向我推薦了亞行。我安裝了
android-tools-adb
,在啟用Developer Options 和 USB Debugging之後,我可以通過adb shell
例如訪問手機。但是,ADB 不能作為使用者工作。這是對應的udev文件,
/lib/udev/rules.d/70-android-tools-adb.rules
.# Set ACLs for console users on adb USB devices # d001 recovery # d002 system ACTION=="add|change", SUBSYSTEM=="usb", \ ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="d001|d002", \ TAG+="uaccess"
我應該如何修改此文件以授予使用者訪問權限?自然的方式似乎是授予對組的訪問權限。沿著這些構想,這裡有一個建議,即對“Android Debug Bridge (adb) device - no permissions”的回答,這表明
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", MODE="0666", GROUP="plugdev"
那麼,我應該添加
GROUP="plugdev"
到上面的那個文件中,還是有更好的方法?另外這部分是什麼ATTRS{idVendor}=="18d1"
意思,這適用於任何設備嗎?還有,什麼ATTRS{idProduct}=="d001|d002"
意思?我會考慮將好的建議轉發給 Debian Bug Tracker。
在我的 gentoo 系統上,設置了以下 udev 規則(
/lib64/udev/rules.d
對我來說):SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", MODE="0664", GROUP="android" SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", MODE="0664", GROUP="android" SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", MODE="0664", GROUP="android" SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0664", GROUP="android"
這些規則允許組中的任何人訪問 USB android 設備(22b8 = Motorola、0bb4 = HTC、04e8 = Samsung 和 18d1 = Google)
android
。只要您的使用者是該組的成員,您決定使用的組的名稱並不重要。
為了解決您關於 USB 標識符的其他問題,供應商和產品 ID 標識了特定設備。
dmesg
您可以使用或來查看您的標識符lsusb
。例如,當我插入手機時,dmesg
報告:[ 4573.116303] usb 4-5: New USB device found, idVendor=22b8, idProduct=2e63
並
lsusb
報告:Bus 004 Device 005: ID 22b8:2e63 Motorola PCS
這告訴我,我的手機的供應商 ID 為 22b8,產品 ID 為 2e63。udev 規則:
SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", MODE="0664", GROUP="android"
將匹配此設備(以及所有摩托羅拉手機,因為它不受產品 ID 的限制)並將此手機的 USB 設備上的權限設置為:
crw-rw-r--+ 1 root android 189, 388 May 5 19:38 /dev/bus/usb/004/005
您可以使用 USB 匯流排和設備編號找到您的 USB 設備以檢查其權限。
lsusb
報告Bus 004 Device 005
並且設備路徑包含.../004/005
. 只要您可以讀/寫此設備,您就可以使用adb
其他需要訪問手機的程序。警告:您的系統上的設備命名可能略有不同。我正在執行 udev 215 和 linux 核心 4.0.1。