[日期:2010-09-06] | 來源:Linux社區 做者:monner |
Android的底層實際是Linux內核,固然在shell環境下能夠運行Linux命令,尤爲是通過root處理的android系統,基本上能夠經過調用Linux命令徹底控制手機,下面的RootCmd.java代碼就是實現運行Linux外部命令。java
package my.Android.code;linux
import Android.os.Environment;
import dalvik.annotation.Signature;android
|
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();
}
}shell
//執行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();
}
}ide
//判斷機器Android是否已經root,便是否獲取root權限
protected static boolean haveRoot()
{測試
int i = execRootCmdSilent("echo test"); //經過執行測試命令來檢測
if (i != -1) return true;
retrun false;
}spa
}code