Android Java 呼叫linux 命令
方法1: copy from RootExplorer怎麼樣獲取root許可權的
ProcessBuilder pb = new ProcessBuilder("/system/bin/sh");
//java.lang.ProcessBuilder: Creates operating system processes.
pb.directory(new File("/"));//設定shell的當前目錄。
try {
Process proc = pb.start();
//獲取輸入流,可以通過它獲取SHELL的輸出。
BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream()));
BufferedReader err = new BufferedReader(new InputStreamReader(proc.getErrorStream()));
//獲取輸出流,可以通過它向SHELL傳送命令。
PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(proc
.getOutputStream())), true);
out.println("pwd");
out.println("su root");//執行這一句時會彈出對話方塊(以下程式要求授予最高許可權...),要求使用者確認。
out.println("cd /data/data");//這個目錄在系統中要求有root許可權才可以訪問的。
out.println("ls -l");//這個命令如果能列出當前安裝的APK的資料檔案存放目錄,就說明我們有了ROOT許可權。
out.println("exit");
// proc.waitFor();
String line;
while ((line = in.readLine()) != null) {
System.out.println(line); // 列印輸出結果
}
while ((line = err.readLine()) != null) {
System.out.println(line); // 列印錯誤輸出結果
}
in.close();
out.close();
proc.destroy();
} catch (Exception e) {
System.out.println("exception:" + e);
}
方法二:copy from http://code.google.com/p/superuser/
File superuser = new File("/system/bin/superuser");
if (superuser.exists())
{
// return device to original state
Process process = Runtime.getRuntime().exec("superuser");
DataOutputStream os = new DataOutputStream(process.getOutputStream());
os.writeBytes("mount -oremount,rw /dev/block/mtdblock3 /system\n");
os.writeBytes("busybox cp /system/bin/superuser /system/bin/su\n");
os.writeBytes("busybox chown 0:0 /system/bin/su\n");
os.writeBytes("chmod 4755 /system/bin/su\n");
os.writeBytes("rm /system/bin/superuser\n");
os.writeBytes("exit\n");
os.flush();
}
相關文章
- Android 使用js呼叫JavaAndroidJSJava
- Linux_java_呼叫classesLinuxJava
- Android-Java 和 JavaScript 相互呼叫AndroidJavaScript
- C語言呼叫 Java(Linux)C語言JavaLinux
- Java呼叫db2cmd命令匯出資料JavaDB2
- 解決linux oracle shell上下箭呼叫歷史命令LinuxOracle
- Android Studio NDK開發-JNI呼叫Java方法AndroidJava
- linux下java -version未找到命令LinuxJava
- java開發中常用linux命令JavaLinux
- Android JNI開發系列之Java與C相互呼叫AndroidJava
- Android Studio NDK開發:JNI呼叫Java函式AndroidJava函式
- banq請問如何用java程式呼叫windows的執行命令JavaWindows
- MySQL入門--如何呼叫命令列命令MySql命令列
- php 直接呼叫svn命令PHP
- C++呼叫CMD命令C++
- Python呼叫shell命令Python
- Android中js呼叫java本地方法的三種方式AndroidJSJava
- EOS JAVA 呼叫Java
- Java呼叫ZookeeperJava
- java呼叫JavaScriptJavaScript
- java 呼叫javascriptJavaScript
- Java開發必會的Linux命令JavaLinux
- Linux命令strace跟蹤程式的系統呼叫-linux學習用什麼書Linux
- pycharm怎麼呼叫命令列PyCharm命令列
- 命令列引數 opencv呼叫命令列OpenCV
- 命令列呼叫bat檔案命令列BAT
- perl中呼叫系統命令
- Java開發人員必備Linux命令JavaLinux
- Android JNI實現Java與C/C++互相呼叫,以及so庫的生成和呼叫(JNI方式呼叫美圖秀秀so)AndroidJavaC++
- Dapr Java Http 呼叫JavaHTTP
- Java遠端呼叫Java
- java呼叫印表機Java
- Scala呼叫Java類Java
- c如何呼叫javaJava
- PHP中呼叫JAVA,PHPJava
- Mac android呼叫ffmpeg 方法MacAndroid
- Android呼叫攝像頭Android
- Android呼叫WebService詳解AndroidWeb