如何在Android设备上运行shell命令?



我尝试通过使用Runtime类和ndk系统/exec函数在android应用程序上运行shell命令。

首先,我使用由其他用户指导的Runtime类。从android执行shell命令

Runtime.getRuntime().exec("/data/local/tmp/test.sh");(我仔细检查了文件权限,结果是777)

但是当我运行upper命令时发生以下错误:

try {
Process process = Runtime.getRuntime().exec("/data/local/tmp/test.sh");
BufferedReader reader = new BufferedReader(
new InputStreamReader(process.getInputStream()));
int read;
char[] buffer = new char[4096];
StringBuffer output = new StringBuffer();
while ((read = reader.read(buffer)) > 0) {
output.append(buffer, 0, read);
}
reader.close();
process.waitFor();
return output.toString();
} catch (IOException e) {
throw new RuntimeException(e);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}

误差

at com.sec.sq.myapp.apis.test.tasks.test.MyTester.exec(MyTester.java:47)
at com.sec.sq.myapp.apis.test.tasks.test.MyTester.run(MyTester.java:29) 
at com.sec.sq.myapp.apis.manager.ThreadManager.doTask(ThreadManager.java:108) 
at com.sec.sq.myapp.apis.manager.ThreadManager.doTest(ThreadManager.java:81) 
at com.sec.sq.myapp.apis.manager.ThreadManager.run(ThreadManager.java:118) 
Caused by: java.io.IOException: error=13, Permission denied

第二,我尝试了原生ndk系统/执行函数,但它也不起作用。

  • execl("/系统/bin/sh","/数据/地方/tmp/test.sh", NULL);

: app crash,并且可以看到permission denied error=13.

系统("/系统/bin/sh/数据/地方/tmp/test.sh");

:没有发生任何事情,shell不运行。

有人能帮我找到一种方法,如何在Android应用程序上运行shell命令?

读取该文件有问题。脚本很好。你可以试试这个吗:

chmod u+x /data/local/tmp/test.sh

你也可以通过这个链接。

相关内容

  • 没有找到相关文章

最新更新