2012年3月2日 星期五

不要sudo就可以使用adb的方法

        對於常見的android設備可以直接使用sdk的adb而不需要sudo,原本以為是SUID的作用,結果發現權限並沒有特殊。後來在網上找相關資訊,發現是常見的設備的UID,PID有註冊在udev中,所以當設備mount時可以自動獲得相應的權限,其相關設定都在lib/udev/rules.d中。所以要解決要sudo才能使用自己的adb的問題,也就是在etc/udev/rules.d中新增相關的PID,VID設定。

以下是新增的步驟:

1.建立檔名為XX-android.rules的檔案
XX為>=90的數字

2.填寫
SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE="0666"
or
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0c01”, MODE=”0666″
其中idVendor是設備的VID,其中0bb4是HTC用的,實際使用要輸入自己設備的VID,而idProduct是PID,0c01是HTC G1的PID,同樣要輸入自己設備的PID。在我用的Ubuntu10.04中這組VID,PID自己就有內建,所以我原本不需要sudo就可以執行adb,這也是android設備最常使用的PID,VID。不過如果是大廠出的android設備,通常也都會有自己註冊好的VID,PID,所以也可以不需要sudo就可以使用adb。
上面任選一行輸入後就可以儲存到etc/udev/rules.d,

3.輸入
service udev restart

就OK啦

沒有留言:

張貼留言