android java代码调用linux命令续
2016-12-16 10:55
471 查看
http://blog.csdn.net/dahuaishu2010_/article/details/8494447
标签: androidjavalinux
2013-01-11 17:04 5553人阅读 评论(0) 收藏 举报
分类:
java(11)
Android
app(6)
使用Linux命令首先要获得root,执行命令时记得加上 busybox 。一般我们在用Java IO的基本方法不能把文件放到usb文件,可以用linux命令来做。
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);
}
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 java代码调用linux命令续
标签: androidjavalinux2013-01-11 17:04 5553人阅读 评论(0) 收藏 举报
分类:
java(11)
Android
app(6)
使用Linux命令首先要获得root,执行命令时记得加上 busybox 。一般我们在用Java IO的基本方法不能把文件放到usb文件,可以用linux命令来做。
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);
}
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 java代码调用linux命令续
- Android开发:java程序调用linux命令(高级)
- android java获得root权限调用linux命令
- 急急急!!用java代码远程调用linux命令为啥不出来结果啊!!!命令:java -version
- android java获得root权限调用linux命令
- Android开发:java程序调用linux命令(高级)
- 02_JNI中Java代码调用C代码,Android中使用log库打印日志,javah命令的使用,Android.mk文件的编写,交叉编译
- java代码调用linux命令,生成.pem公钥私钥证书
- 02_JNI中Java代码调用C代码,Android中使用log库打印日志,javah命令的使用,Android.mk文件的编写,交叉编译
- java中执行调用linux命令删除mysql数据库中的数据实例代码
- Android Java 调用linux 命令
- Java 可以通过 Runtime 调用Linux命令
- Java调用Linux命令的方法
- Java程序调用Linux命令时的重定向问题
- Java调用Linux命令的实现例子
- Java调用Linux命令的方法
- Linux环境下android平台调试native代码, 从java debug 到C++ (NDK DEBUG)
- Java调用linux终端命令
- Android-NDK开发之基础--Android JNI实例代码(一)-- 在JNI中执行Java方法--C/C++调用Java
- Java 调用Linux 管道命令的一点误区