diff --git a/.idea/misc.xml b/.idea/misc.xml
index 96c8818..10c31e0 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -4,7 +4,7 @@
-
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index d71dad6..dcbe5df 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -13,11 +13,14 @@
-
+
+
@@ -44,17 +47,18 @@
tools:replace="android:fullBackupContent"
tools:targetApi="31">
+ android:name=".ExternalAuthLogin"
+ android:exported="true"
+ android:launchMode="singleTask">
+
+
+
-
-
-
-
-
-
-
+
+
+
+
-
+
= Build.VERSION_CODES.O) {
+ return vibrator.hasVibrator();
+ } else {
+ return true; // For devices before Android O, assume vibration support
+ }
+ }
+ } catch (Exception e) {
+ Log.e("EmulatorCheckUtil", "Error checking vibration capability: " + e.getMessage());
+ }
+
+ return false;
+ }
+}
+
diff --git a/app/src/main/java/com/bug/hook/checkdetect.java b/app/src/main/java/com/bug/hook/checkdetect.java
index 7acd8ad..cafca62 100644
--- a/app/src/main/java/com/bug/hook/checkdetect.java
+++ b/app/src/main/java/com/bug/hook/checkdetect.java
@@ -16,7 +16,7 @@ public class checkdetect {
public void someMethod(final Context context) {
- if ( emultorcheck.isEmulator(context)) {
+ if ( emultorcheck.isEmulator() || AdbEnabled.AdbEnabled1(context)) {
if (Looper.myLooper() == Looper.getMainLooper()) {
// You are on the UI thread, you can show the dialog directly
@@ -39,7 +39,6 @@ public void run() {
launchapp(context);
}
-
}
private void launchapp(Context context) {
diff --git a/app/src/main/java/com/bug/hook/emultorcheck.java b/app/src/main/java/com/bug/hook/emultorcheck.java
index 9b1f205..268777e 100644
--- a/app/src/main/java/com/bug/hook/emultorcheck.java
+++ b/app/src/main/java/com/bug/hook/emultorcheck.java
@@ -1,14 +1,30 @@
package com.bug.hook;
-import android.app.ActivityManager;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorManager;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
+import android.os.Build;
import android.util.Log;
+import java.util.HashSet;
+import java.util.Set;
+
public class emultorcheck {
+
+
+ public static boolean isEmulator() {
+ return Build.FINGERPRINT.startsWith("generic")
+ || Build.FINGERPRINT.startsWith("unknown")
+ || Build.MODEL.contains("google_sdk")
+ || Build.MODEL.contains("Emulator")
+ || Build.MODEL.contains("Android SDK built for x86")
+ || Build.MANUFACTURER.contains("Genymotion")
+ || (Build.BRAND.startsWith("generic") && Build.DEVICE.startsWith("generic"))
+ || "google_sdk".equals(Build.PRODUCT);
+ }
+
static int[] sensorTypes = {
Sensor.TYPE_ACCELEROMETER,
Sensor.TYPE_AMBIENT_TEMPERATURE,
@@ -33,29 +49,33 @@ public class emultorcheck {
// Add more sensor types as needed
};
- public static boolean isEmulator(Context context) {
- Log.d("cool","hello");
- SensorManager sensorManager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE);
- Sensor accelerometer = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
-
+ static Set emulatorSensorTypes = new HashSet<>();
+ static {
+ // Add sensor types that are commonly not available in emulators
+ emulatorSensorTypes.add(Sensor.TYPE_AMBIENT_TEMPERATURE);
+ emulatorSensorTypes.add(Sensor.TYPE_HEART_RATE);
+ emulatorSensorTypes.add(Sensor.TYPE_STEP_COUNTER);
+ emulatorSensorTypes.add(Sensor.TYPE_STEP_DETECTOR);
+ // Add more sensor types as needed
+ }
+ public static boolean isEmulator(Context context) {
+ Log.d("cool", "hello");
+ SensorManager sensorManager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE);
for (int sensorType : sensorTypes) {
Sensor sensor = sensorManager.getDefaultSensor(sensorType);
Log.d("hellocool", String.valueOf(sensor));
- if (sensor == null) {
-
+ if (emulatorSensorTypes.contains(sensorType)) {
+ Log.d("hellocool", String.valueOf(sensorType));
// Sensor of the specified type is not available on this device (likely an emulator)
return true;
}
-
-
}
-
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
@@ -66,16 +86,7 @@ public static boolean isEmulator(Context context) {
isEmulator = true;
}
- ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
- ActivityManager.MemoryInfo memoryInfo = new ActivityManager.MemoryInfo();
- activityManager.getMemoryInfo(memoryInfo);
-
-
-
- if (memoryInfo.lowMemory) {
- // Low memory condition (may indicate emulator)
- isEmulator = true;
- }
+ // Add other checks if needed
return isEmulator;
}
diff --git a/app/src/main/java/com/darvin/security/DetectMagisk.java b/app/src/main/java/com/darvin/security/DetectMagisk.java
index d5193cd..ab70721 100644
--- a/app/src/main/java/com/darvin/security/DetectMagisk.java
+++ b/app/src/main/java/com/darvin/security/DetectMagisk.java
@@ -47,10 +47,10 @@ private void checkForMagisk() {
try {
Log.d(TAG, "UID:" + Os.getuid());
if (serviceBinder.isMagiskPresent() || Native.isMagiskPresentNative() ) {
- Log.d("hacker","detect");
+
if (listener != null) {
- Log.d("hacker","detect");
+
listener.onMagiskDetected();
}
@@ -60,7 +60,7 @@ private void checkForMagisk() {
}
}
} catch (RemoteException e) {
- Log.d("hacker","error");
+
}
}
diff --git a/app/src/main/res/layout/activity_main2.xml b/app/src/main/res/layout/activity_main2.xml
new file mode 100644
index 0000000..c42e8d7
--- /dev/null
+++ b/app/src/main/res/layout/activity_main2.xml
@@ -0,0 +1,9 @@
+
+
+
+
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
index 0397b21..1c9d93e 100644
--- a/build.gradle
+++ b/build.gradle
@@ -10,6 +10,6 @@ buildscript {
}// Top-level build file where you can add configuration options common to all sub-projects/modules.
plugins {
- id 'com.android.application' version '8.1.0' apply false
- id 'com.android.library' version '8.1.0' apply false
+ id 'com.android.application' version '8.0.0' apply false
+ id 'com.android.library' version '8.0.0' apply false
}