1. 程式人生 > >Android 判斷手機是否有root許可權

Android 判斷手機是否有root許可權

root許可權是安卓最高的操作許可權,俗稱superuser,簡稱su,一般來說root過的手機,系統目錄會有su目錄和系統app目錄中有Superuser.apk,或者kingroot、360Root、Root精靈、等apk。當然了,在安卓8系列中會使用magisk,檔名就不一樣了。

下面是RootUtil檔案,實現三種檢測方法來判斷是否有root

public class RootUtil {
    public static boolean isDeviceRooted() {
        return checkRootMethod1() || checkRootMethod2() || checkRootMethod3();
    }
 
    private static boolean checkRootMethod1() {
        String buildTags = android.os.Build.TAGS;
        return buildTags != null && buildTags.contains("test-keys");
    }
 
    private static boolean checkRootMethod2() {
        String[] paths = { "/system/app/Superuser.apk", "/sbin/su", "/system/bin/su", "/system/xbin/su", "/data/local/xbin/su", "/data/local/bin/su", "/system/sd/xbin/su",
                "/system/bin/failsafe/su", "/data/local/su", "/su/bin/su"};
        for (String path : paths) {
            if (new File(path).exists()) return true;
        }
        return false;
    }
 
    private static boolean checkRootMethod3() {
        Process process = null;
        try {
            process = Runtime.getRuntime().exec(new String[] { "/system/xbin/which", "su" });
            BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));
            if (in.readLine() != null) return true;
            return false;
        } catch (Throwable t) {
            return false;
        } finally {
            if (process != null) process.destroy();
        }
    }
}

呼叫方法

if (isDeviceRooted()){
            Log.d(TAG, "onCreate: 你的裝置可以獲取root");
        }else {
            Log.d(TAG, "onCreate: 你的裝置可以獲取不能獲取root");
        }

相關推薦

Android 判斷手機是否root許可權

root許可權是安卓最高的操作許可權,俗稱superuser,簡稱su,一般來說root過的手機,系統目錄會有su目錄和系統app目錄中有Superuser.apk,或者kingroot、360Root

android 判斷app是否具有root許可權

    應用判斷是否具有root許可權,只需要看能否在data分割槽建立檔案,如果能夠在data分割槽建立檔案,那麼應用具有root許可權 public static boolean upgradeRootPermission( ) {  &nbs

Android判斷手機時候導航欄的方法

參考:https://zhidao.baidu.com/question/1241728811608853219.html             https://segmentfault.com/q/1010000004387583             http://www.cnblogs.com/

Android判斷手機是否已經Root

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Android 判斷手機沒有安裝該應用的工具類

public class AppInstallUtils{ private static List<PackageInfo> cachedList; private static long lastDetectTime = 0; /** * 判斷是否安裝

android 6之前版本判斷應用是否某個許可權

1) 判斷應用是否具有某個許可權 PackageManager pm = getPackageManager(); boolean permission = (PackageManager.PERMISSION_GRANTED ==

android-判斷手機是否支援相機,幾個攝像頭?

//判斷是否存在攝像頭 private boolean hasCameraSupport() { return CONTEXT.getPackageManager().hasS

Android判斷手機中的應用是否具有某些許可權(例如小米手機中是否具有懸浮窗許可權

op 的值是 0 ~ 47,其中0代表粗略定位許可權,1代表精確定位許可權,24代表懸浮窗許可權。(具體可以看看android原始碼在android.app下就有個AppOpsManager類) uid 當前應用用到的uid ,可通過 Binder.getCallin

Android 判斷手機是否root

//判斷手機是否root public static boolean isRoot() {     String binPath = "/system/bin/su";     String xBinPath = "/system/xbin/su";       if (n

pc進入android手機shell的root許可權(su: not found)

1、將android的tools目錄加入到path中(我sdk\tools目錄沒有adb,但卻在sdk\platform-tools裡發現了adb.exe,索性兩個tools全加入到了path中) 2、adb shell 進入手機後,發現是 $ ,不是 # 號,而視訊上是

檢測Android手機是否具有root許可權和靜默安裝

執行靜默安裝時,需要向手機申請獲取root許可權,如果手機具有root許可權,則可以完成安裝。程式碼如下: MainActivity: import java.io.DataOutputStream; import java.io.File; import java

adb怎麼判斷是否root許可權,並更改system/app內容

一、首先判斷root許可權: adb root 結果: C:\signapp>adb root restarting adbd as root # 說明有root許可權 ,若是adbd cannot run as root in production builds

Android判斷手機裡是否SIM卡

由於專案的需要,要判斷手機裡是否有sim卡。在網上找了一下資料結果發現,網上的資料很多都是一樣的,都是判斷sim卡的狀態,把程式碼新增進去後發現不能滿足需求。然後就自己看了一下文件。程式碼如下。 /** * @author CX- * @判斷 是否含有sim卡

Android 判斷手機廠商rom

有時候需要判斷手機系統的ROM,檢測ROM是MIUI、EMUI還是Flyme,可以使用getprop命令,去系統build.prop檔案查詢是否有對應屬性來判斷是什麼ROM。build.prop的介紹可以看Android build.prop簡介

android studio模擬器怎樣獲得root許可權

前言: 菜菜最近和同學一起報了學校的機電大賽,我們做的專案是一個基於人臉識別的防盜門系統。專案中用到了安卓手機端開發,但是本人andriod真的學的不好,為了不拖團隊後腿,無耐只能看著視訊自學。其中就遇到了android studio模擬器的許可權問題。 問題描述如下: (1)file

Android 判斷Edittext是否焦點

//判斷Edittext是否有焦點 name.setOnFocusChangeListener(new View.OnFocusChangeListener() { @Override public void onFocusChang

在Unity中判斷手機是否網和網路型別

  using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class IsConnect : MonoBehaviou

RomUtil【Android判斷手機ROM,用於判斷手機機型】

參考資料 Android判斷手機ROM 正文 有時候需要判斷手機系統的ROM,檢測ROM是MIUI、EMUI還是Flyme,可以使用getprop命令,去系統build.prop檔案查詢是否有對應屬性來判斷是什麼ROM。 build.prop的介紹可以看Android build.prop簡介 程式

android 判斷手機是否是國內的手機的方法(getSimCountryIso和getSimOperator)

有一個需求:如果手機插入了sim卡,要判斷該手機是否是大陸使用者? 方法一: /**      * 判斷國家是否是國內使用者      *       * @return      */     public static boolean isCN(Context cont

Android判斷手機是否是小米MIUI系統

public class MIUIUtils { // 檢測MIUI private static final String KEY_MIUI_VERSION_CODE = "ro.