欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > linux >内容正文

linux

Android在Shell环境下运行Linux命令

发布时间:2025/6/15 linux 27 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Android在Shell环境下运行Linux命令 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

Android的底层其实linux,所以可以在android shell下运行linux命令,尤其是经过root处理的Android系统,基本上可以通过调用linux命令完全操作手机,下面的RootCmd.Java代码就是实现运行linux外部命令。

package my.android.code; import android.os.Environment; import dalvik.annotation.Signature; import java.io.BufferedReader; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.File; import java.io.FileReader; import java.io.InputStream; import java.io.OutputStream; import java.util.Vector; public final class RootCmd { //执行linux命令并且输出结果 protected static Vector execRootCmd(String paramString) { Vector localVector = new Vector(); try { Process localProcess = Runtime.getRuntime().exec("su ");//经过Root处理的android系统即有su命令 OutputStream localOutputStream = localProcess.getOutputStream(); DataOutputStream localDataOutputStream = new DataOutputStream(localOutputStream); InputStream localInputStream = localProcess.getInputStream(); DataInputStream localDataInputStream = new DataInputStream(localInputStream); String str1 = String.valueOf(paramString); String str2 = str1 + "\n"; localDataOutputStream.writeBytes(str2); localDataOutputStream.flush(); String str3 = localDataInputStream.readLine(); localVector.add(str3); localDataOutputStream.writeBytes("exit\n"); localDataOutputStream.flush(); localProcess.waitFor(); return localVector; } catch (Exception localException) { localException.printStackTrace(); } } //执行linux命令但不关注结果输出 protected static int execRootCmdSilent(String paramString) { try { Process localProcess = Runtime.getRuntime().exec("su"); Object localObject = localProcess.getOutputStream(); DataOutputStream localDataOutputStream = new DataOutputStream((OutputStream)localObject); String str = String.valueOf(paramString); localObject = str + "\n"; localDataOutputStream.writeBytes((String)localObject); localDataOutputStream.flush(); localDataOutputStream.writeBytes("exit\n"); localDataOutputStream.flush(); localProcess.waitFor(); localObject = localProcess.exitValue(); return localObject; } catch (Exception localException) { localException.printStackTrace(); } } //判断机器Android是否已经root,即是否获取root权限 protected static boolean haveRoot() { int i = execRootCmdSilent("echo test"); //通过执行测试命令来检测 if (i != -1) return true; retrun false; } }

总结

以上是生活随笔为你收集整理的Android在Shell环境下运行Linux命令的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。