2012年8月4日 星期六

Linux 中,令 ADB 測得以 USB 連接的 Android 設備

在 Linux 中使用 Android SDK 開發 App 時,遇到將 Android 手機或平板用 USB 接上,但是電腦卻不能自動測試到。
Linux 不是很多裝置都不需安裝驅動程式嗎?怎麼會這樣呢?
原來,是 USB 裝置的自動辨識機制尚未設定。由於 Android 裝置並不是 PC 的常設裝置,當然 Linux 也就未預設安裝妥善。只要依照下面這幾個步驟,就可以自動偵測了:

1. 切換成 root 身份

需先切換成 root 身份才能作以下操作,請參考 " 在 Linux 中,切換為 root 身分以操作、設定系統 " 一文。

2. 編輯設定檔

在目錄路俓 “ /etc/udev/rules.d/ " 下編輯一個設定檔 “ 52-android.rules ”,以「終端機」用圖形化編輯的操作為例,
[root@Celeron-D ~]# gedit /etc/udev/rules.d/52-android.rules
再將下面文字輸入
# Company USB Vendor ID
# ASUS        0B05
# HTC           0BB4
# Motorola     22B8
# Samsung    04E8
SUBSYSTEM=="usb", SYSFS{idVendor}=="0b05", SYMLINK+="android_adb", MODE="0666"
SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", SYMLINK+="android_adb", MODE="0666"
SUBSYSTEM=="usb", SYSFS{idVendor}=="22b8", SYMLINK+="android_adb", MODE="0666"
SUBSYSTEM=="usb", SYSFS{idVendor}=="04e8", SYMLINK+="android_adb", MODE="0666"
編輯完成,將檔案儲存。
注意:以上開頭為 " SUBSYSTEM " 的四列設定文字,中間並沒換列。

3. 重新啟動測試機制

這時候自動偵測的機制仍然是舊的設定,要重新啟動後,剛才的設定才會生效。
[root@Celeron-D ~]# udevadm control --reload-rules
執行成功後,就可以切換回原來的使用者身份。

4. 正常測試使用

重新拔插 Android 手機或平板的 USB 插頭一次,這時 Linux 應該可以正常偵測到 Android 設備了。再用 adb 測試一下,看看剛才的設定是否成功:
[SiB@Celeron-D ~]$ Android-SDK/platform-tools/adb devices
List of devices attached
000990c55a666f device
注意:" adb " 的路徑會因作業系統、或 SDK 版本的不同而不同,請耐心找一下。

已測試版本:

  • Fedora: 14, 17

沒有留言:

張貼留言

感謝你耐心看完本文,歡迎留下任何指正、建議,筆者會儘快回應。(English is also welcome.)