分类:Android App 691人阅读 评论(0) 收藏 举报

方法一:(不弹框)

[java] view plain copy
  1. privatefinalstaticintkSystemRootStateUnknow=-1;
  2. privatefinalstaticintkSystemRootStateDisable=0;
  3. privatefinalstaticintkSystemRootStateEnable=1;
  4. privatestaticintsystemRootState=kSystemRootStateUnknow;
[java] view plain copy
  1. publicstaticbooleanisRootSystem(){
  2. if(systemRootState==kSystemRootStateEnable){
  3. returntrue;
  4. }elseif(systemRootState==kSystemRootStateDisable){
  5. returnfalse;
  6. }
  7. Filef=null;
  8. finalStringkSuSearchPaths[]={"/system/bin/","/system/xbin/",
  9. "/system/sbin/","/sbin/","/vendor/bin/"};
  10. try{
  11. for(inti=0;i<kSuSearchPaths.length;i++){
  12. f=newFile(kSuSearchPaths[i]+"su");
  13. if(f!=null&&f.exists()){
  14. systemRootState=kSystemRootStateEnable;
  15. returntrue;
  16. }
  17. }
  18. }catch(Exceptione){
  19. }
  20. systemRootState=kSystemRootStateDisable;
  21. returnfalse;
  22. }

方法二:(会弹框)

[java] view plain copy
  1. publicsynchronizedbooleangetRootAhth()
  2. {
  3. Processprocess=null;
  4. DataOutputStreamos=null;
  5. try
  6. {
  7. process=Runtime.getRuntime().exec("su");
  8. os=newDataOutputStream(process.getOutputStream());
  9. os.writeBytes("exit\n");
  10. os.flush();
  11. intexitValue=process.waitFor();
  12. if(exitValue==0)
  13. {
  14. returntrue;
  15. }else
  16. {
  17. returnfalse;
  18. }
  19. }catch(Exceptione)
  20. {
  21. Log.d("***DEBUG***","Unexpectederror-HereiswhatIknow:"
  22. +e.getMessage());
  23. returnfalse;
  24. }finally
  25. {
  26. try
  27. {
  28. if(os!=null)
  29. {
  30. os.close();
  31. }
  32. process.destroy();
  33. }catch(Exceptione)
  34. {
  35. e.printStackTrace();
  36. }
  37. }
  38. }


方法三:(会弹框)

[java] view plain copy
  1. //判断机器Android是否已经root,即是否获取root权限
  2. protectedstaticbooleanhaveRoot()
  3. {
  4. inti=execRootCmdSilent("echotest");//通过执行测试命令来检测
  5. if(i!=-1)returntrue;
  6. retrunfalse;
  7. }

更多相关文章

  1. Android缓存理解
  2. Android(安卓)数据漫游默认值的修改方法
  3. Android(安卓)SystemService类注释
  4. Android实现使用流媒体播放远程mp3文件的方法
  5. Android开发 System.out.println(); 控制台输出方法
  6. Android简单判断某个APK是否已经安装的方法
  7. Flutter跟Android交互
  8. SimpleAdapter
  9. android 权限配置和测试环境配置

随机推荐

  1. 安卓10
  2. 盒模型与常用的居中方式
  3. InnoDB存储引擎简介
  4. 再分享几个docker小技巧
  5. PHP实战: 实现数据的分页显示和编辑,删除
  6. js:值传递引用传递、结构赋值、流程控制
  7. 2021-2-28
  8. IntelliJ IDEA 激活码 2021.02.28日更
  9. Mysql5.7的varchar类型字段建索引竟然失
  10. 给Mysql服务添加防火墙策略,就这么简单