1. 程式人生 > >Android root環境下的一些可用操作(關機命令,系統時間,重啟命令)

Android root環境下的一些可用操作(關機命令,系統時間,重啟命令)

 近期正在做一些需要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();
            }