2011-12-23 82 views
1

我試圖使用從運行PHP亞行:執行ADB從PHP

exec('adb devices', $output, $return_val); 

,但我得到126錯誤。

我認爲問題在於php是以'www-data'用戶身份運行的,並且沒有執行adb的權限。

任何解決方案?

回答

3

檢查這個網站了: http://bzed.de/posts/2009/05/howto_set_android_developer_device_permissions_with_udev/

並添加WWW的數據androiddev。 您需要將您的特定模型添加到udev-lines。您可以通過將手機連接到計算機並在終端中執行lsusb來查找供應商和產品ID。

你喜歡的東西:

Bus 001 Device 002: ID 413c:a001 Dell Computer Corp. Hub 

其中413C是供應商ID和A001是該產品的ID。當然,你的手機應該是行,而不是「戴爾計算機」...

祝你好運!

1

如果您在Windows工作中,更簡單的方法,我知道的是:

  1. 創建順序ADB設備和變量$ 1和$ 2 file.bat。
  2. 呼叫使用exec命令

這應該工作的PHP的file.bat。

如果您正在使用Linux,請使用/ bin/bash。並使用相同的程序。

如果你不知道如何做腳本,你的朋友google會幫助你。

0

雖然這不是126錯誤的解決方案,這是對如果您已經安裝Android的工具 - 亞行在Linux上的Debian 8

運行從PHP亞行的方式,想必已經注意到,一個新的組已創建:ADB,用戶www-data必須屬於它:

usermod -a -G adb www-data 

如果您使用的是Android版本大於或等於4.4.2您需要accept RSA key fingerprint在屏幕上你的手機上,那在同一時間makes a hidden directory在用戶主路徑上的名爲.android的計算機上,將存儲adbkeyadbkey。酒館文件,運行:

cat /etc/passwd | grep www-data 

你得到

www-data:x:33:33:www-data:/var/www 

因此,在/ var/www都是www數據的用戶,

於是,我改變了它的組從根到WWW-數據

chown root:www-data /var/www 

然後,我設置寫入權限

現在
chmod 775 /var/www/ 

.android目錄可以被創建。儘管當你要接受RSA密鑰指紋說message:「始終從該計算機允許」,你必須接受每個用戶的計算機,如果正在使用不同的用戶在同一臺​​計算機上ADB命令

而且你可以試試adb command as www-data user,執行:(根)

sudo -u www-data adb devices -l 

我希望這可以幫助別人