zoukankan      html  css  js  c++  java
  • Android -- 程序判断手机ROOT状态,获取ROOT权限

    判断手机是否具有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 + "
    ");  
                os.writeBytes("exit
    ");  
                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;  
      
        }  
      
    }

    我是天王盖地虎的分割线                                                                 

    参考:http://blog.csdn.net/fm9333/article/details/12752415

  • 相关阅读:
    Best Practices for Using Alpha
    Android手机 Fildder真机抓包
    Android调用MediaScanner进行新产生的媒体文件扫描
    读书笔记-----Java并发编程实战(二)对象的共享
    项目经验谈---IM新消息界面刷新异常处理记录
    读书笔记-----Java并发编程实战(一)线程安全性
    OnScroll与OnTouchEvent方法的区别与联系
    View的getLeft, getRight, getTop, getBottom
    如何用DNS+GeoIP+Nginx+Varnish做世界级的CDN
    更改ubuntu mysql data目录位置
  • 原文地址:https://www.cnblogs.com/yydcdut/p/3884690.html
Copyright © 2011-2022 走看看