`
mickey_hou
  • 浏览: 246409 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Android root权限判断

阅读更多
import java.io.DataInputStream; 
import java.io.DataOutputStream; 
import java.io.InputStream; 
import java.io.OutputStream; 
import android.app.Activity; 
import android.os.Bundle; 
  
public class RootActivity extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main); 
        DataInputStream stream; 
        if(isRooted()){ 
        try { 
            stream = Terminal("ping -c 2 www.pocketdigi.com"); 
            //其实ping并不需要root权限 ,这里是ping 2次后才停止,所以启动后需要一点时间才会有显示 
            //你可以自己换成需要root权限的命令试试 
            String temp; 
            while((temp=stream.readLine())!=null){ 
                System.out.println(temp); 
                //循环输出返回值 
            } 
        } catch (Exception e1) { 
            // TODO Auto-generated catch block 
            e1.printStackTrace(); 
        } 
        } 
    } 
    public DataInputStream Terminal(String command) throws Exception 
    { 
        Process process = Runtime.getRuntime().exec("su"); 
        //执行到这,Superuser会跳出来,选择是否允许获取最高权限 
        OutputStream outstream = process.getOutputStream(); 
        DataOutputStream DOPS = new DataOutputStream(outstream); 
        InputStream instream = process.getInputStream(); 
        DataInputStream DIPS = new DataInputStream(instream); 
        String temp = command + "\n"; 
        //加回车 
        DOPS.writeBytes(temp); 
        //执行 
        DOPS.flush(); 
        //刷新,确保都发送到outputstream 
        DOPS.writeBytes("exit\n"); 
        //退出 
        DOPS.flush(); 
        process.waitFor(); 
        return DIPS; 
    } 
    public boolean isRooted() { 
        //检测是否ROOT过 
        DataInputStream stream; 
        boolean flag=false; 
        try { 
            stream = Terminal("ls /data/"); 
            //目录哪都行,不一定要需要ROOT权限的 
            if(stream.readLine()!=null)flag=true; 
            //根据是否有返回来判断是否有root权限 
        } catch (Exception e1) { 
            // TODO Auto-generated catch block 
            e1.printStackTrace(); 
  
        } 
  
        return flag; 
    } 
  
  
分享到:
评论

相关推荐

    Android应用程序请求root权限代码

    - **如何检测设备是否已被root**:可以通过检查某些root标志文件(如`/system/app/Superuser.apk`)是否存在来判断设备是否已获取root权限。 - **root权限的风险**:虽然root权限可以带来更多的自由度和功能,但同时...

    android手机root检测

    标题提到的"android手机root检测"是指检查Android设备是否已经获取了root权限的过程。这个过程对于应用开发者和安全专家来说尤其重要,因为他们需要确保其应用不会在被root的设备上运行,因为这可能会导致数据泄露或...

    Android系统Root权限获取与检测.pdf

    例如,Android SDK提供了一些系统权限检查API,如`android.os.Process.isRootUser()`,可以用来判断当前进程是否具有root权限。此外,还有一些第三方库和应用可以辅助检测,如Rootbeer、Root Checker等。 为了保护...

    Android获取ROOT权限的实例代码

    在Android系统中,ROOT权限是最高级别的管理员权限,允许用户访问和修改系统核心文件,执行对设备有深度控制的操作。通常,这些操作包括但不限于安装自定义固件、卸载预装应用、修改系统设置以及优化性能等。然而,...

    Android例子源码不弹框手机是否Root检测例子

    在Android开发中,有时我们需要检测用户的设备是否已经获得了Root权限,因为这可能影响到应用程序的安全性和功能表现。本文将详细探讨如何通过编程实现这一功能,主要基于提供的"Android例子源码不弹框手机是否Root...

    Android 实现永久性开启adb 的root权限

    adb 的root 权限是在system/core/adb/adb.c 中控制。主要根据ro.secure 以及 ro.debuggable 等system property 来控制...2. 修改adb.c 中开启root 权限的判断逻辑。 下面详细说明这两种修改方式: 第一种方法. 修改syst

    java_android_判断手机是否具有root权限工具类的标准代码

    判断手机是否具有root权限工具类的标准代码

    Android例子源码不弹框手机是否Root检测例子.zip

    Android可以直接运行一个底层命令,来判断是否root,但是这会带来一个问题,每次判断是否root都会弹出一个root请求框。这是十分不友好的一种交互方式,而且,用户如果选择取消,有部分手机是判断为非root的。这种方式...

    Root_java_rootcheck_ROOT_

    在Android开发中,"Root"一词通常指的是设备获得了超级用户权限,即root权限。Rooting是Android系统中的一种操作,允许用户获取对设备的完全访问权限,以便自定义、优化或安装不受官方支持的应用程序。然而,对于...

    Android 悬浮窗权限各机型各系统适配大全(总结)

    在 Android 4.4 ~ Android 5.1.1 版本之间,需要判断权限的类 AppOpsManager 是 API19 版本添加的,所以 Android 4.4 之前的版本(不包括 4.4)就不用去判断了,直接调用 WindowManager 的 addView 方法弹出即可。...

    androidRoot大全.pdf

    5. android.permission.ACCESS_NETWORK_STATE:应用需要此权限来获取网络连接状态,如Wi-Fi、移动数据等,以判断是否可以进行网络操作。 6. android.permission.ACCESS_SURFACE_FLINGER:提供对SurfaceFlinger底层...

    Android无需root实现apk的静默安装

    在没有root权限的情况下,我们不能直接为普通应用授予这个权限。 Android系统通过`pm`命令行工具来管理包,包括安装APK。在源码中,`/frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java`文件包含了`pm`...

    android系统判断快捷方式是否存在

    此外,如果设备已经获取了root权限,则通常可以直接访问这些数据而无需显式声明这些权限。 #### 实现逻辑 接下来是具体的实现逻辑。主要分为以下几个步骤: 1. **获取系统版本**:通过`android.os.Build.VERSION....

    Android静默安装Demo

    然而,通过root权限,我们可以绕过这一限制,使用底层命令来执行安装操作。 在Demo中,引入了`TrineaAndroidCommon`库,这是一个开源的Android工具类库,包含了一些常用的Android开发辅助函数,可能包括了与系统...

    安卓2.3系统ROOT

    Root权限是Android系统中的最高权限,它允许用户访问并控制系统的每一个角落。一旦设备被Root,用户可以删除预装应用、调整系统设置、安装需要超级用户权限的应用,如Xposed框架,以及进行性能优化等。然而,Root也...

    检测手机是否Root源码.zip

    Android可以直接运行一个底层命令,来判断是否root,但是这会带来一个问题,每次判断是否root都会弹出一个root请求框。这是十分不友好的一种交互方式,而且,用户如果选择取消,有部分手机是判断为非root的。这种方式...

    root tools 源码

    `root tools` 是一个针对Android系统开发的工具集,主要功能是提供对Android设备的root权限管理。这个源码分析将深入探讨其内部实现,帮助开发者理解如何在Android平台上进行root操作以及相关工具的开发。 首先,`...

    检测手机是否root

    - 已root的设备往往会有像SuperSU、Magisk等管理root权限的应用。通过查询系统中是否存在这些应用或者对应的守护进程(如su、magiskd等),可以推断设备是否被root。 4. **利用系统权限检测库**: - 开发者可以...

    android静默安装小demo

    在本"android静默安装小demo"中,我们将探讨如何在具有root权限的设备上实现这一功能。 首先,我们需要理解Android系统的权限管理。在非root环境下,普通应用通常没有权限执行静默安装,因为这是系统级别的操作。...

Global site tag (gtag.js) - Google Analytics