mirror of
https://github.com/shuto-cn/cordova-plugin-root-detection.git
synced 2026-04-19 00:01:31 +08:00
init commit
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
package ru.trykov.root;
|
||||
|
||||
import org.apache.cordova.CordovaPlugin;
|
||||
import org.apache.cordova.CallbackContext;
|
||||
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.lang.Exception;
|
||||
import java.io.File;
|
||||
|
||||
/**
|
||||
* Detect weather device is rooted or not
|
||||
* @author trykov
|
||||
*/
|
||||
public class RootDetection extends CordovaPlugin {
|
||||
|
||||
@Override
|
||||
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
|
||||
if (action.equals("isDeviceRooted")) {
|
||||
try {
|
||||
callbackContext.success(isDeviceRooted() ? 1 : 0);
|
||||
return true;
|
||||
} catch (Exception e) {
|
||||
callbackContext.error("N/A");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private boolean isDeviceRooted() {
|
||||
return checkBuildTags() || checkSuperUserApk() || checkFilePath();
|
||||
}
|
||||
private boolean checkBuildTags() {
|
||||
String buildTags = android.os.Build.TAGS;
|
||||
return buildTags != null && buildTags.contains("test-keys");
|
||||
}
|
||||
|
||||
private boolean checkSuperUserApk() {
|
||||
return new File("/system/app/Superuser.apk").exists();
|
||||
}
|
||||
|
||||
private boolean checkFilePath() {
|
||||
String[] paths = { "/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" };
|
||||
for (String path : paths) {
|
||||
if (new File(path).exists()) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user