大学IT网 - 最懂大学生的IT学习网站! QQ资料交流群:367606806
当前位置:大学IT网 > Android技巧 > Android -- 程序判断手机ROOT状态,获取ROOT权限

Android -- 程序判断手机ROOT状态,获取ROOT权限

关键词:判断手机ROOT状态获取ROOT权限Android  阅读(3966) 赞(17)

[摘要]本文是对Android -- 程序判断手机ROOT状态,获取ROOT权限的讲解,对学习Android编程技术有所帮助,与大家分享。

判断手机是否具有ROOT权限

/** 
     * 判断手机是否ROOT 
     */  
    public boolean isRoot() {  
  
        boolean root = false;  
  
        try {  
            if ((!new File("/system/bin/su").exists())  
                    && (!new File("/system/xbin/su").exists())) {  
                root = false;  
            } else {  
                root = true;  
            }  
  
        } catch (Exception e) {  
        }  
  
        return root;  
    }

上面返回的参数就知道手机是否具有ROOT权限了。

向ROOT权限发送请求信息,以获取ROOT权限

此方法不涉及底层, 这种方式需要用户点击确认才可以获取.

public class MainActivity extends Activity {  
  
    /** 
     * 创建 
     */  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);  
  
        // 返回系统包名  
        String apkRoot = "chmod 777 " + getPackageCodePath();  
        RootCommand(apkRoot);  
  
    }  
  
    /** 
     * 应用程序运行命令获取 Root权限,设备必须已破解(获得ROOT权限) 
     *  
     * @param command 
     *            命令: String apkRoot="chmod 777 "+getPackageCodePath(); 
     *            RootCommand(apkRoot); 
     * @return 应用程序是/否获取Root权限 
     */  
    public static boolean RootCommand(String command) {  
  
        Process process = null;  
        DataOutputStream os = null;  
  
        try {  
  
            process = Runtime.getRuntime().exec("su");  
            os = new DataOutputStream(process.getOutputStream());  
            os.writeBytes(command + "\n");  
            os.writeBytes("exit\n");  
            os.flush();  
            process.waitFor();  
  
        } catch (Exception e) {  
            Log.d("*** DEBUG ***", "ROOT REE" + e.getMessage());  
            return false;  
  
        } finally {  
  
            try {  
                if (os != null) {  
                    os.close();  
                }  
                process.destroy();  
            } catch (Exception e) {  
            }  
        }  
  
        Log.d("*** DEBUG ***", "Root SUC ");  
        return true;  
  
    }  
  
}


相关评论