Android(安卓)检测是否有ROOT权限
16lz
2021-01-24
ndroid (linux)很多命令需要root权限才能执行,比如说查看系统目录文件等,如果我们的程序需要用到查看此类文件或执行系统命令,就必须先获取Root权限。
view plain print ?
- importjava.io.DataInputStream;
- importjava.io.DataOutputStream;
- importjava.io.InputStream;
- importjava.io.OutputStream;
- importandroid.app.Activity;
- importandroid.os.Bundle;
- publicclassRootActivityextendsActivity{
- /**Calledwhentheactivityisfirstcreated.*/
- @Override
- publicvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- DataInputStreamstream;
- if(isRooted()){
- try{
- stream=Terminal("ping-c2www.pocketdigi.com");
- //其实ping并不需要root权限,这里是ping2次后才停止,所以启动后需要一点时间才会有显示
- //你可以自己换成需要root权限的命令试试
- Stringtemp;
- while((temp=stream.readLine())!=null){
- System.out.println(temp);
- //循环输出返回值
- }
- }catch(Exceptione1){
- //TODOAuto-generatedcatchblock
- e1.printStackTrace();
- }
- }
- }
- publicDataInputStreamTerminal(Stringcommand)throwsException
- {
- Processprocess=Runtime.getRuntime().exec("su");
- //执行到这,Superuser会跳出来,选择是否允许获取最高权限
- OutputStreamoutstream=process.getOutputStream();
- DataOutputStreamDOPS=newDataOutputStream(outstream);
- InputStreaminstream=process.getInputStream();
- DataInputStreamDIPS=newDataInputStream(instream);
- Stringtemp=command+"\n";
- //加回车
- DOPS.writeBytes(temp);
- //执行
- DOPS.flush();
- //刷新,确保都发送到outputstream
- DOPS.writeBytes("exit\n");
- //退出
- DOPS.flush();
- process.waitFor();
- returnDIPS;
- }
- publicbooleanisRooted(){
- //检测是否ROOT过
- DataInputStreamstream;
- booleanflag=false;
- try{
- stream=Terminal("ls/data/");
- //目录哪都行,不一定要需要ROOT权限的
- if(stream.readLine()!=null)flag=true;
- //根据是否有返回来判断是否有root权限
- }catch(Exceptione1){
- //TODOAuto-generatedcatchblock
- e1.printStackTrace();
- }
- returnflag;
- }
- }
转自:http://blog.csdn.net/offbye/article/details/7076252
更多相关文章
- pull解析和json编码
- Linux Mint下Kindle Fire调试android程序
- android 终端上使用gcc
- android CTS test
- 【Android】删除已知路径的文件或文件夹
- android studio 配置ffmpeg
- Android权限控制EasyPermissions
- RK3399 /RK3288 ADB使用
- Android设置界面之Preference