使用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();
}

更多相关文章

  1. Android文件上传至服务器
  2. android Q版本外部存储问题以及获取空间大小问题
  3. android load 本地 html 页面
  4. cts测试流程
  5. Android(安卓)源码编译 文件系统制作
  6. android电话处理
  7. Android(安卓)混淆配置文件及常用第三方混淆
  8. Android解压中文乱码
  9. Android8.1 Launcher3 修改行数和列数

随机推荐

  1. 如何通过网页打开Android(安卓)APP
  2. Android和J2ME按钮接口之简单对比
  3. Android7.0 系统启动流程---system_serve
  4. 如何使用android sdk开发应用
  5. 如何使Android应用程序获取系统权限来修
  6. android Canvas用法
  7. android传输视频到PC
  8. Android中的网络时间同步
  9. Android系统服务 WMS与AMS简单理解
  10. android window窗口机制