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

本文介绍了如何通过Java代码判断手机是否具有ROOT权限,并详细解释了两种方法:一种是检查特定目录是否存在su文件来判断,另一种是通过命令执行来获取ROOT权限。同时,提供了实例代码演示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

判断手机是否具有ROOT权限

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/**
     * 判断手机是否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权限

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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
   
    
   
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值