8

我正在尝试从 android 应用程序运行一些类似于 LINUX 的命令,我希望我的应用程序运行一些自定义命令pkg,例如dpkg等。基本上我需要我的应用程序充当终端应用程序,为此,我创建了一个必要的 Linux 文件结构应用程序包内的库和二进制文件,即我将文件放在/data/data/com.example.root.app/files/usr/bin目录结构下。然后我从我的代码中执行它们:

Process process; 
try {
        process = Runtime.getRuntime().exec(new String[]{"pkg","search","apache2"}, env, new File(cwd));
    } catch (IOException e) {

        // TODO: Visible error message?
    }

我正在使用变量env来设置环境变量PATH、LD_LIBRARY_PATH、HOME等。我将它们传递给上面的过程。另外,我从包含命令的目录开始该过程,即

String cwd = "/data/data/com.example.root.app/files/usr/bin"

我能够运行基本命令,如,,env但我无法运行自定义命令,如.ls -lpwdpkg

当我尝试执行命令pkg时,它抛出IOException 错误 =13 权限被拒绝

请注意,我已将整个目录的可执行权限设置为777,只是为了查找它是否运行,但它没有。

此外,当我在那里使用已经存在的终端应用程序时,我可以运行pkg命令

4

0 回答 0