近期正在做一些需要root权限的功能,比如关机,重启等,下面总结一下用过的root吓得linux命令使用

 1.重启操作

Runtime.getRuntime().exec("su -c reboot");

   2.关机(1)

Runtime.getRuntime().exec("su -c reboot -p");

本来要用shutdown指令的,但是网上查的时候说android下没有这个文件,所以用-p的方式,但是我用这种执行方式测试的时候是重启,下面是另一种成功的执行方式

  3.关机(2)

createSuProcess("reboot -p").waitFor();
public static Process createSuProcess(String cmd) throws IOException {
        DataOutputStream os = null;
        Process process = createSuProcess();
        try {
            os = new DataOutputStream(process.getOutputStream());
            os.writeBytes(cmd + "\n");
            os.writeBytes("exit $?\n");
        } finally {
            if(os != null) {
                try {
                    os.close();
                } catch (IOException e) {
                }
            }
        }
        return process;
    }
public static Process createSuProcess() throws IOException  {
        File rootUser = new File("/system/xbin/ru");
        if(rootUser.exists()) {
            return Runtime.getRuntime().exec(rootUser.getAbsolutePath());
        } else {
            return Runtime.getRuntime().exec("su");
        }
    }
4.系统时间调节

try {
                Process process = Runtime.getRuntime().exec("su");
                String datetime=timeSu.replace(" ",".").replace(":","") + "00"; //测试的设置的时间【时间格式 yyyyMMdd.HHmmss】
                LogMessage.write(1,"时间设置参数:" + datetime);
                DataOutputStream os = new DataOutputStream(process.getOutputStream());
                os.writeBytes("setprop persist.sys.timezone GMT+16:00\n");
                os.writeBytes("/system/bin/date -s "+datetime+"\n");
                os.writeBytes("clock -w\n");
                os.writeBytes("exit\n");
                os.flush();
            } catch (IOException e) {
                e.printStackTrace();
            }
Logo

更多推荐