0

我正在尝试使用 PHP shell_exec 在网络上运行apktool(只是一个解包 android 应用程序的工具),但它不起作用。有谁知道这可能是为什么?

这就是这行代码的实际样子:

   $output = `apktool d -f $file_name`;

任何建议都会帮助我完全不知道为什么我运行 php 而没有任何反应。谢谢!

4

3 回答 3

2

我找到了解决方案。创建具有 exec 权限的 build.sh 文件并在其中写入以下代码:

#!/bin/bash
export PATH=/opt/local/bin:/opt/local/sbin:/usr/bin/:/usr/sbin/:/bin:/sbin/:/bin/sbin:/usr/local/bin:/usr/X11/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

/usr/local/bin/apktool b -d $1 $2

-- 用法 ./build.sh

<? php shell_exec("/path/to/build.sh $dir $file"); ?>
于 2012-12-02T15:04:18.197 回答
1

检查您的 Web 服务器(可能是 apache)是否有足够的权限来执行 apktool。包括 apktool 二进制文件的完整路径。如果文件名中有空格,请使用单引号。

检查您的网络服务器的日志,如果有任何详细的命令没有执行。

于 2011-06-01T21:24:49.053 回答
0

确保您的实际线路是:

 $output = shell_exec(`apktool d -f $file_name`);

并且您的 php.ini 文件未safe_mode打开或未在指令中shell_exec列出。disable_functions

于 2011-06-01T21:20:28.370 回答