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