Android如何判断系统是否已经被Root

  • 前言
  • App检测Android系统是否已经Root的几种方法
    • 1 判断系统内是否包含 su
    • 2 判断系统内是否包含 busybox
    • 3. 检测系统内是否安装了Superuser.apk之类的App
    • 4. 检测系统是否为测试版
    • 5. 检测系统挂载目录权限

前言

  • 实体手机的Root本文不讨论,只讨论Android模拟器的Root问题。
  • 在Android模拟器上运行的APP有时会提示:“设备已Root,使用软件可能存在安全风险”
  • 本文分析在Android模拟器系统中如何解决这个问题。

App检测Android系统是否已经Root的几种方法

1 判断系统内是否包含 su

/*** 是否存在su命令,并且有执行权限** @return 存在su命令,并且有执行权限返回true*/
public static boolean isSuEnable() {File file = null;String[] paths = {"/system/bin/", "/system/xbin/", "/system/sbin/", "/sbin/", "/vendor/bin/", "/su/bin/"};try {for (String path : paths) {file = new File(path + "su");if (file.exists() && file.canExecute()) {Log.i(TAG, "find su in : " + path);return true;}}} catch (Exception x) {x.printStackTrace();}return false;
}

2 判断系统内是否包含 busybox

/*** 是否存在busybox命令,并且有执行权限** @return 存在busybox命令,并且有执行权限返回true*/
public static boolean isSuEnable() {File file = null;String[] paths = {"/system/bin/", "/system/xbin/", "/system/sbin/", "/sbin/", "/vendor/bin/", "/su/bin/"};try {for (String path : paths) {file = new File(path + "busybox");if (file.exists() && file.canExecute()) {Log.i(TAG, "find su in : " + path);return true;}}} catch (Exception x) {x.printStackTrace();}return false;
}

3. 检测系统内是否安装了Superuser.apk之类的App

    public static boolean checkSuperuserApk(){try {File file = new File("/system/app/Superuser.apk");if (file.exists()) {Log.i(LOG_TAG,"/system/app/Superuser.apk exist");return true;}} catch (Exception e) { }return false;}

4. 检测系统是否为测试版

在系统adb shell中执行:

# cat /system/build.prop | grep ro.build.tags
ro.build.tags=release-keys

这个返回结果“release-keys”,代表此系统是正式发布版。
在代码中的检测方法如下:

    public static boolean checkDeviceDebuggable(){String buildTags = android.os.Build.TAGS;if (buildTags != null && buildTags.contains("test-keys")) {Log.i(LOG_TAG,"buildTags="+buildTags);return true;}return false;}

若是非官方发布版,很可能是完全root的版本,存在使用风险。

5. 检测系统挂载目录权限

检测Android 沙盒目录文件或文件夹读取权限(在Android系统中,有些目录是普通用户不能访问的,例如 /data、/system、/etc 等;比如微信沙盒目录下的文件或文件夹权限是否正常)

Android如何判断系统是否已经被Root相关推荐

  1. [九鼎RK3399Pro] Android 8.1 系统定制给用户root权限

    由于有些APP需要获取root权限. 源码修改 diff --git a/build/core/main.mk b/build/core/main.mk index e3fb6fb..0bb9ef2 ...

  2. Android10 root,Android Q系统Magisk完美实现ROOT

    Android Q系统Magisk完美实现ROOT,由于谷歌I/O大会需要等到5月7日举办,理论上我们距离一版较为稳定的Android Q公测系统还有相当时间. 但这并未阻止开发者的脚步,尤其是那些极 ...

  3. 如何判断系统 是ios还是 android

    在h5中怎么实现ios和Android传不同值给后台? 需要判断系统是ios还是android! 怎么判断系统是ios还是android? function appSource() {//Naviga ...

  4. android开发 判断当前手机是否是阿里 yunOS 系统

    android开发 判断当前手机是否是阿里 yunOS 系统 调用此方法, 返回ture,就是yunOS系统 返回false,就是非yunOS系统 @SuppressLint({"Defau ...

  5. android中的系统应用

    重点 (Top highlight) Android's underlying kernel is based on Linux, but it has been customized to suit ...

  6. android垃圾清理动画,Android 6.0系统 内存和缓存清理及相关动画

    前言 最近,做了一个清理android系统(基于6.0的一个定制系统)的内存等清理相关的模块,里面涉及到该系统的运行的相关进程清理和各个应用的缓存清理(提前说一下,需要系统签名,然后push 到系统目 ...

  7. 基于ubuntu16.04多用户编译android N(android 7.1)系统提示ninja_wrapper错误问题

    基于ubuntu16.04多用户编译android N(android 7.1)系统提示ninja_wrapper错误问题 Ubuntu 1604系统除了root,还有kandi和sundi两个用户, ...

  8. android 动态录音权限,Android如何判断手机是否有录音权限的工具类

    作用 判断手机是否有录音权限的工具类,兼容6.0以上以及以下android系统 测试环境 这篇文章是评论中的网友提出质疑后,经过重写修改与重写测试后编写的,我的调试环境是小米note3,Android ...

  9. Android O限制系统全屏进一步遏制手机勒索

    一.引言 近期谷歌发布了最新手机操作系统Android O的开发者预览版,一如往常,Android O又带来了多项新功能与优化升级,其中一项有关系统窗口管理的优化给Android手机勒索软件带来了严重 ...

最新文章

  1. mysql有那些存储引擎_MySQL有那哪些存储引擎
  2. IOS - 设置与帮助界面
  3. 6.1 网络应用模型
  4. Android系统原生应用解析之桌面闹钟及相关原理应用之时钟任务的应用(二)
  5. C语言中函数可变参数解析
  6. Java 读文件的5种方式
  7. 北航教授李波:说AI会有低潮就是胡扯,这是人类长期的追求
  8. [算法]有趣算法合辑[21-30]
  9. 在html中引用分享的链接
  10. 用unity3d切割图片
  11. AOP面向切面编程(1.6w字长文讲清AOP)
  12. Oracle P6培训系列:10增加作业并估算工期
  13. 胶东机场t1离哪个停车场近,青岛胶东国际机场停车场攻略
  14. 超市在线购物商城源码分享
  15. Windos下的UPD服务器端的C++实现
  16. 华为云服务器参数配置文件,华为云服务器参数配置文件
  17. 到底还有没有月薪3万以下的程序员?程序员工资真的这么高!
  18. 在线电子书阅读微信小程序 毕业设计(4)图书详细页-图书目录
  19. STM32-ESP8266解析天气
  20. 在 pygame 中好好玩玩精灵,滚雪球学 Python 游戏番

热门文章

  1. SpringCloud Netflix-Eureka使用
  2. Android -- 三种动画(帧动画、View动画、属性动画)
  3. 开关电源MOS管选型500V、600V、650V参数
  4. 职场打工人快看过来,一分钟教会你PDF转Word后怎么编辑
  5. Twebbrowser从内存中加载页面
  6. 计算机英语的词汇量,英语词汇量多少才够用
  7. java网课|面向对象的思想
  8. gartner数据治理_Gartner:2019年「数据管理解决方案」魔力象限
  9. java爬虫抓取nba_利用Python爬虫爬取NBA数据功能实例分享
  10. 如何用计算机计算年金现值,如何用excel算年金现值