检查根冻结

时间:2013-07-17 13:13:02

标签: android root

我正在创建一个应用程序,但现在及时检查root,它每次按下“check for root”按钮冻结。有什么想法吗?

这里是“检查root”代码:

Process p;
        try {
            // Perform SU to get root privileges
            p = Runtime.getRuntime().exec("su");
            DataOutputStream os = new DataOutputStream(p.getOutputStream());
            os.writeBytes("remount rw");
            os.writeBytes("echo Root Test > /system/rootcheck.txt");
            os.writeBytes("exit\n");
            os.flush();

            try {
                p.waitFor();
                    if (p.exitValue() != 255){
                        //Phone is rooted
                        Toast.makeText(getApplicationContext(), "Your device is rooted\r\n\r\n(Long Press to know how to get root acess)", 0).show();
                        break;
                    }
                    else {
                        //Phone is not rooted
                        Toast.makeText(getApplicationContext(), "Your device is not rooted\r\n\r\n(Long Press to know how to get root acess)", 0).show();
                        break;
                    }
            } catch (InterruptedException e) {

            }
        } catch (IOException e) {

        }

1 个答案:

答案 0 :(得分:1)

使用waitFor()“使调用线程等待与此对象关联的本机进程完成执行。”每SDK个规格。由于缺少root访问权限,su命令似乎永远不会完成。

也许您可能只想在合理的时间段内使用wait(long ms)(记录here),并测试您的流程是否成功完成(有根)或超时(没有)根)。