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 }