gpt4 book ai didi

android - 如何在 Android 设备上运行 Linux 命令?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:24:34 25 4
gpt4 key购买 nike

在某些 Android 设备上,在 ADB shell 中,我只能运行 echocdls。当我运行时:

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

或者命令cp,它返回:

sh: tar: not found

为什么我不能运行这些命令?一些设备支持这些命令。我的最终目标是将文件从 /data/data 文件夹复制到 SD 卡。我得到了 su 并且得到了以下代码:

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() 时它也停止了。为什么?

最佳答案

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

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

关于android - 如何在 Android 设备上运行 Linux 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10277709/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com