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 + "\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;  
  
    }  
  
}
复制代码

我是天王盖地虎的分割线                                                                 

 




本文转自我爱物联网博客园博客,原文链接:http://www.cnblogs.com/yydcdut/p/3884690.html,如需转载请自行联系原作者

相关文章
|
19天前
|
Web App开发 定位技术 iOS开发
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
20 1
|
5月前
|
安全 Java Android开发
05. 【Android教程】Android 程序签名打包
05. 【Android教程】Android 程序签名打包
61 1
|
5月前
|
缓存 NoSQL Java
案例 采用Springboot默认的缓存方案Simple在三层架构中完成一个手机验证码生成校验的程序
案例 采用Springboot默认的缓存方案Simple在三层架构中完成一个手机验证码生成校验的程序
109 5
|
4月前
|
Oracle Java 关系型数据库
Android studio 安装以及第一个程序
Android studio 安装以及第一个程序
128 0
|
5月前
|
Java Android开发
程序与技术分享:Android使用Dagger注入的方式初始化对象的简单使用
程序与技术分享:Android使用Dagger注入的方式初始化对象的简单使用
144 0
|
5月前
|
安全 网络协议 网络安全
程序与技术分享:Android应用安全之数据传输安全
程序与技术分享:Android应用安全之数据传输安全
|
5月前
|
网络协议 Android开发 数据安全/隐私保护
Android手机上使用Socks5全局代理-教程+软件
Android手机上使用Socks5全局代理-教程+软件
4706 2
|
6月前
|
监控 安全 Android开发
【新手必读】Airtest测试Android手机常见的设置问题
【新手必读】Airtest测试Android手机常见的设置问题
199 0
|
6月前
|
Web App开发 前端开发 网络安全
前端分析工具之 Charles 录制 Android/IOS 手机的 https 应用
【2月更文挑战第21天】前端分析工具之 Charles 录制 Android/IOS 手机的 https 应用
107 1
前端分析工具之 Charles 录制 Android/IOS 手机的 https 应用
|
6月前
|
存储 数据库 Android开发
Android实现手机内存存储功能
Android实现手机内存存储功能
64 2