2011-12-23 40 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 

我希望这可以帮助别人