判断手机是否具有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
;
}
}
|