我怎么能运行在Android设备上的Linux命令?(How can I run Linux com

2019-06-23 20:45发布

在某些Android设备,在亚洲开发银行的外壳,我只能跑echocdls 。 当我运行:

tar -cvf //mnt/sdcard/BackUp1669/apk/test.tar /mnt/sdcard/test.apk

或命令cp ,则返回:

sh: tar: not found

为什么我不能运行这些命令? 有些设备支持这些命令。 我的最终目标是将文件从/数据/数据文件夹复制到SD卡复制。 我得到了 ,我得到了下面的代码:

int timeout = 1000;
String command = "tar -cvf /" + Environment.getExternalStorageDirectory() + "/cp/"
        + packageName + ".tar" + " " + path;
DataOutputStream os = new DataOutputStream(process.getOutputStream());
BufferedReader is = new BufferedReader(new InputStreamReader(new DataInputStream(
        process.getInputStream())), 64);

String inLine;
try {
    StringBuilder sbCommand = new StringBuilder();
    sbCommand.append(command).append(" ");
    sbCommand.append("\n");
    os.writeBytes(command.toString());
    if (is != null) {
        for (int i = 0; i < timeout; i++) {
            if (is.ready())
                break;
            try {
                Thread.sleep(5);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
        if (is.ready()) {
            inLine = is.readLine();
        } else {
        }
    }

} catch (IOException e) {
    e.printStackTrace();
}

它总是在停止is.ready()当我把它改为process.waitfor()也停止了。 为什么?

Answer 1:

您可以运行在Android Linux命令。 但也有通常只是很少预装。 如果你想添加更多的命令,你可能想根您的设备和安装busybox的就可以了。

这不是一个应用程序内的生产性使用,但可以帮助您与您的设备上运行。



Answer 2:

据我所知,运行shell命令,唯一的办法是:

Process proc = Runtime.getRuntime().exec("your command");


Answer 3:

如果您有您的系统的二进制文件,你可以在系统上运行任何东西。

说,你要明白,你必须找到二进制tar

看看这里http://forum.xda-developers.com/showthread.php?t=872438

和其他可能的地方..



Answer 4:

安装busybox的,然后在下面的格式键入命令:

busybox的[Linux命令]

您不能使用所有的Linux命令,而无需busybox的,因为Android不都在一个标准的Linux操作系统中提供的二进制文件。

仅供参考,二进制只是包含编译代码的文件。 很多默认的二进制文件都存储在/系统/ bin / sh的目录。 所有这些命令像“CP”“ls”的“得到”等等,其实都是二进制文件。 您可以通过查看它们:

LS -a /系统/ bin / sh的

希望这可以帮助。



Answer 5:

在回答伊戈尔Ganapolsky,你就必须有一个数据库设置为定位。

也许“发现”将满足您的需求。

exmample:

找到-name * .apk文件



文章来源: How can I run Linux commands on an Android device?