From 9572ccefa910bad46be6dc744f2e88d877ac1c8d Mon Sep 17 00:00:00 2001 From: alex5402 Date: Fri, 30 Jan 2026 22:13:05 +0530 Subject: [PATCH] feat: Enhance Blackbox core virtualization, system service proxies, and hook mechanisms for improved compatibility. --- Bcore/src/main/AndroidManifest.xml | 3 +- Bcore/src/main/cpp/BoxCore.cpp | 2 +- Bcore/src/main/cpp/IO.cpp | 2 +- Bcore/src/main/cpp/Utils/AntiDetection.cpp | 4 +- Bcore/src/main/cpp/Utils/VirtualSpoof.cpp | 2 +- Bcore/src/main/cpp/hidden_api.cpp | 2 +- .../main/java/android/app/ActivityThread.java | 2 +- .../android/app/ContentProviderHolder.java | 2 +- .../android/content/IContentProvider.java | 2 +- .../android/content/pm/ManifestDigest.java | 2 +- .../android/content/pm/PackageUserState.java | 2 +- .../java/android/content/pm/VerifierInfo.java | 2 +- .../top/niunaijun/blackbox/BlackBoxCore.java | 2 +- .../blackbox/app/BActivityThread.java | 2 +- .../configuration/AppLifecycleCallback.java | 2 +- .../configuration/ClientConfiguration.java | 2 +- .../dispatcher/AppJobServiceDispatcher.java | 2 +- .../app/dispatcher/AppServiceDispatcher.java | 2 +- .../niunaijun/blackbox/core/CrashHandler.java | 2 +- .../top/niunaijun/blackbox/core/GmsCore.java | 2 +- .../top/niunaijun/blackbox/core/IOCore.java | 2 +- .../niunaijun/blackbox/core/NativeCore.java | 2 +- .../blackbox/core/env/AppSystemEnv.java | 2 +- .../blackbox/core/env/BEnvironment.java | 2 +- .../core/system/BProcessManagerService.java | 2 +- .../blackbox/core/system/BlackBoxSystem.java | 2 +- .../blackbox/core/system/ISystemService.java | 2 +- .../blackbox/core/system/ServiceManager.java | 2 +- .../core/system/SystemCallProvider.java | 2 +- .../core/system/am/ActiveServices.java | 2 +- .../core/system/am/ActivityRecord.java | 2 +- .../core/system/am/ActivityStack.java | 2 +- .../system/am/BActivityManagerService.java | 2 +- .../core/system/am/BJobManagerService.java | 2 +- .../blackbox/core/system/am/TaskRecord.java | 2 +- .../blackbox/core/system/am/UserSpace.java | 2 +- .../system/os/BStorageManagerService.java | 2 +- .../blackbox/core/system/pm/BPackage.java | 2 +- .../system/pm/BPackageInstallerService.java | 2 +- .../system/pm/BPackageManagerService.java | 2 +- .../core/system/pm/BPackageSettings.java | 2 +- .../core/system/pm/BPackageUserState.java | 2 +- .../core/system/pm/BXposedManagerService.java | 2 +- .../core/system/pm/ComponentResolver.java | 2 +- .../core/system/pm/PackageManagerCompat.java | 2 +- .../core/system/pm/PackageMonitor.java | 2 +- .../blackbox/core/system/pm/Settings.java | 2 +- .../system/pm/installer/CopyExecutor.java | 2 +- .../pm/installer/CreatePackageExecutor.java | 2 +- .../pm/installer/CreateUserExecutor.java | 2 +- .../core/system/pm/installer/Executor.java | 2 +- .../pm/installer/RemoveAppExecutor.java | 2 +- .../pm/installer/RemoveUserExecutor.java | 2 +- .../blackbox/core/system/user/BUserInfo.java | 2 +- .../core/system/user/BUserManagerService.java | 2 +- .../core/system/user/BUserStatus.java | 2 +- .../niunaijun/blackbox/entity/AppConfig.java | 2 +- .../niunaijun/blackbox/entity/JobRecord.java | 2 +- .../blackbox/entity/ServiceRecord.java | 2 +- .../blackbox/entity/UnbindRecord.java | 2 +- .../blackbox/entity/pm/InstallOption.java | 2 +- .../blackbox/entity/pm/InstallResult.java | 2 +- .../blackbox/entity/pm/InstalledModule.java | 2 +- .../blackbox/entity/pm/InstalledPackage.java | 2 +- .../blackbox/entity/pm/XposedConfig.java | 2 +- .../top/niunaijun/blackbox/fake/FakeCore.java | 2 +- .../delegate/ContentProviderDelegate.java | 2 +- .../fake/delegate/InnerReceiverDelegate.java | 2 +- .../delegate/ServiceConnectionDelegate.java | 2 +- .../fake/frameworks/BActivityManager.java | 2 +- .../blackbox/fake/frameworks/BJobManager.java | 2 +- .../fake/frameworks/BPackageManager.java | 2 +- .../fake/frameworks/BStorageManager.java | 2 +- .../fake/frameworks/BUserManager.java | 2 +- .../fake/frameworks/BXposedManager.java | 2 +- .../fake/hook/BinderInvocationStub.java | 2 +- .../fake/hook/ClassInvocationStub.java | 2 +- .../blackbox/fake/hook/HookManager.java | 2 +- .../blackbox/fake/hook/IInjectHook.java | 2 +- .../blackbox/fake/hook/MethodHook.java | 2 +- .../blackbox/fake/hook/ProxyMethod.java | 2 +- .../blackbox/fake/hook/ProxyMethods.java | 2 +- .../blackbox/fake/hook/ScanClass.java | 2 +- .../blackbox/fake/provider/FileProvider.java | 2 +- .../fake/provider/FileProviderHandler.java | 2 +- .../service/ActivityManagerCommonProxy.java | 2 +- .../blackbox/fake/service/HCallbackProxy.java | 2 +- .../service/IAccessibilityManagerProxy.java | 2 +- .../fake/service/IAccountManagerProxy.java | 2 +- .../fake/service/IActivityManagerProxy.java | 2 +- .../service/IActivityTaskManagerProxy.java | 2 +- .../fake/service/IAlarmManagerProxy.java | 2 +- .../fake/service/IAppOpsManagerProxy.java | 2 +- .../fake/service/IAppWidgetManagerProxy.java | 2 +- .../fake/service/IAutofillManagerProxy.java | 2 +- .../service/IConnectivityManagerProxy.java | 169 ++++++++++++++++-- .../IDeviceIdentifiersPolicyProxy.java | 2 +- .../service/IDevicePolicyManagerProxy.java | 2 +- .../fake/service/IDisplayManagerProxy.java | 2 +- .../fake/service/IGraphicsStatsProxy.java | 2 +- .../fake/service/ILauncherAppsProxy.java | 2 +- .../fake/service/ILocationManagerProxy.java | 2 +- .../service/IMediaSessionManagerProxy.java | 2 +- .../service/INotificationManagerProxy.java | 2 +- .../fake/service/IShortcutManagerProxy.java | 2 +- .../fake/service/IStorageManagerProxy.java | 2 +- .../fake/service/ITelephonyManagerProxy.java | 2 +- .../fake/service/ITelephonyRegistryProxy.java | 2 +- .../fake/service/IUserManagerProxy.java | 2 +- .../fake/service/IVpnManagerProxy.java | 2 +- .../service/IWebViewUpdateServiceProxy.java | 4 +- .../fake/service/IWifiManagerProxy.java | 2 +- .../fake/service/IWindowManagerProxy.java | 2 +- .../fake/service/IWindowSessionProxy.java | 2 +- .../blackbox/fake/service/WebViewProxy.java | 50 +++++- .../service/context/ContentServiceStub.java | 2 +- .../context/RestrictionsManagerStub.java | 2 +- .../context/providers/BContentProvider.java | 2 +- .../providers/ContentProviderStub.java | 2 +- .../context/providers/SystemProviderStub.java | 2 +- .../blackbox/fake/service/libcore/OsStub.java | 2 +- .../blackbox/proxy/ProxyActivity.java | 2 +- .../blackbox/proxy/ProxyContentProvider.java | 2 +- .../blackbox/proxy/ProxyJobService.java | 2 +- .../blackbox/proxy/ProxyManifest.java | 2 +- .../blackbox/proxy/ProxyPendingActivity.java | 2 +- .../blackbox/proxy/ProxyService.java | 2 +- .../proxy/record/ProxyActivityRecord.java | 2 +- .../proxy/record/ProxyBroadcastRecord.java | 2 +- .../proxy/record/ProxyPendingRecord.java | 2 +- .../proxy/record/ProxyServiceRecord.java | 2 +- .../niunaijun/blackbox/utils/AbiUtils.java | 2 +- .../niunaijun/blackbox/utils/CloseUtils.java | 2 +- .../niunaijun/blackbox/utils/NativeUtils.java | 2 +- .../blackbox/utils/compat/ActivityCompat.java | 2 +- .../blackbox/utils/compat/ContextCompat.java | 2 +- .../blackbox/utils/compat/DexFileCompat.java | 2 +- .../utils/compat/StartActivityCompat.java | 2 +- .../utils/compat/XposedParserCompat.java | 2 +- .../top/niunaijun/jnihook/MethodUtils.java | 2 +- .../top/niunaijun/jnihook/ReflectCore.java | 2 +- .../top/niunaijun/jnihook/jni/JniHook.java | 2 +- .../top/niunaijun/blackboxa/app/AppManager.kt | 8 +- .../blackboxa/app/rocker/RockerManager.kt | 145 ++++++++------- .../biz/cache/AppSharedPreferenceDelegate.kt | 50 +++--- .../niunaijun/blackboxa/util/MemoryManager.kt | 75 +++----- build.gradle | 5 +- 147 files changed, 488 insertions(+), 299 deletions(-) diff --git a/Bcore/src/main/AndroidManifest.xml b/Bcore/src/main/AndroidManifest.xml index c6a769f..950fbba 100644 --- a/Bcore/src/main/AndroidManifest.xml +++ b/Bcore/src/main/AndroidManifest.xml @@ -485,7 +485,8 @@ - + relocate_rule; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ char *replace(const char *str, const char *src, const char *dst) { const char *pos = str; diff --git a/Bcore/src/main/cpp/Utils/AntiDetection.cpp b/Bcore/src/main/cpp/Utils/AntiDetection.cpp index 0cdee21..6a5ef92 100644 --- a/Bcore/src/main/cpp/Utils/AntiDetection.cpp +++ b/Bcore/src/main/cpp/Utils/AntiDetection.cpp @@ -17,7 +17,7 @@ * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ struct SpoofedProp { const char* key; @@ -36,7 +36,7 @@ static int (*orig_system_property_get)(const char *name, char *value) = nullptr; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ static const char* blocked_files[] = { // Root detection files diff --git a/Bcore/src/main/cpp/Utils/VirtualSpoof.cpp b/Bcore/src/main/cpp/Utils/VirtualSpoof.cpp index ed4acd6..3ca8867 100644 --- a/Bcore/src/main/cpp/Utils/VirtualSpoof.cpp +++ b/Bcore/src/main/cpp/Utils/VirtualSpoof.cpp @@ -11,7 +11,7 @@ * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ #define LOG_TAG "VirtualSpoof" #define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__) diff --git a/Bcore/src/main/cpp/hidden_api.cpp b/Bcore/src/main/cpp/hidden_api.cpp index f71582f..945d965 100644 --- a/Bcore/src/main/cpp/hidden_api.cpp +++ b/Bcore/src/main/cpp/hidden_api.cpp @@ -11,7 +11,7 @@ * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ bool disable_hidden_api(JNIEnv *env) { char version_str[PROP_VALUE_MAX]; diff --git a/Bcore/src/main/java/android/app/ActivityThread.java b/Bcore/src/main/java/android/app/ActivityThread.java index cd39512..f8ef4b5 100644 --- a/Bcore/src/main/java/android/app/ActivityThread.java +++ b/Bcore/src/main/java/android/app/ActivityThread.java @@ -18,7 +18,7 @@ import java.util.Objects; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class ActivityThread { public H mH = null; diff --git a/Bcore/src/main/java/android/app/ContentProviderHolder.java b/Bcore/src/main/java/android/app/ContentProviderHolder.java index 3252d69..75d8171 100644 --- a/Bcore/src/main/java/android/app/ContentProviderHolder.java +++ b/Bcore/src/main/java/android/app/ContentProviderHolder.java @@ -10,7 +10,7 @@ import android.os.IBinder; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class ContentProviderHolder { public final ProviderInfo info = null; diff --git a/Bcore/src/main/java/android/content/IContentProvider.java b/Bcore/src/main/java/android/content/IContentProvider.java index 743bdf4..1687d8b 100644 --- a/Bcore/src/main/java/android/content/IContentProvider.java +++ b/Bcore/src/main/java/android/content/IContentProvider.java @@ -8,7 +8,7 @@ import android.os.IInterface; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public interface IContentProvider extends IInterface { } diff --git a/Bcore/src/main/java/android/content/pm/ManifestDigest.java b/Bcore/src/main/java/android/content/pm/ManifestDigest.java index a78bb38..92c6a4b 100644 --- a/Bcore/src/main/java/android/content/pm/ManifestDigest.java +++ b/Bcore/src/main/java/android/content/pm/ManifestDigest.java @@ -11,7 +11,7 @@ import java.util.jar.Attributes; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class ManifestDigest implements Parcelable { diff --git a/Bcore/src/main/java/android/content/pm/PackageUserState.java b/Bcore/src/main/java/android/content/pm/PackageUserState.java index 1710a0c..31938ef 100644 --- a/Bcore/src/main/java/android/content/pm/PackageUserState.java +++ b/Bcore/src/main/java/android/content/pm/PackageUserState.java @@ -8,7 +8,7 @@ import android.util.ArraySet; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class PackageUserState { diff --git a/Bcore/src/main/java/android/content/pm/VerifierInfo.java b/Bcore/src/main/java/android/content/pm/VerifierInfo.java index 03d0487..8df305b 100644 --- a/Bcore/src/main/java/android/content/pm/VerifierInfo.java +++ b/Bcore/src/main/java/android/content/pm/VerifierInfo.java @@ -11,7 +11,7 @@ import java.security.PublicKey; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class VerifierInfo implements Parcelable { diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/BlackBoxCore.java b/Bcore/src/main/java/top/niunaijun/blackbox/BlackBoxCore.java index 09aba04..7b1e977 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/BlackBoxCore.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/BlackBoxCore.java @@ -77,7 +77,7 @@ import top.niunaijun.blackbox.utils.StoragePermissionHelper; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ @SuppressLint({"StaticFieldLeak", "NewApi"}) @SuppressWarnings({"unchecked", "deprecation"}) diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/app/BActivityThread.java b/Bcore/src/main/java/top/niunaijun/blackbox/app/BActivityThread.java index 6122f78..dae7c7b 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/app/BActivityThread.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/app/BActivityThread.java @@ -92,7 +92,7 @@ import top.niunaijun.blackbox.core.system.JarManager; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class BActivityThread extends IBActivityThread.Stub { public static final String TAG = "BActivityThread"; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/app/configuration/AppLifecycleCallback.java b/Bcore/src/main/java/top/niunaijun/blackbox/app/configuration/AppLifecycleCallback.java index 56409ed..aa771ad 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/app/configuration/AppLifecycleCallback.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/app/configuration/AppLifecycleCallback.java @@ -12,7 +12,7 @@ import android.os.Bundle; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class AppLifecycleCallback implements Application.ActivityLifecycleCallbacks { public static AppLifecycleCallback EMPTY = new AppLifecycleCallback() { diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/app/configuration/ClientConfiguration.java b/Bcore/src/main/java/top/niunaijun/blackbox/app/configuration/ClientConfiguration.java index ccfe85c..c4aa3e6 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/app/configuration/ClientConfiguration.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/app/configuration/ClientConfiguration.java @@ -8,7 +8,7 @@ import java.io.File; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public abstract class ClientConfiguration { diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/app/dispatcher/AppJobServiceDispatcher.java b/Bcore/src/main/java/top/niunaijun/blackbox/app/dispatcher/AppJobServiceDispatcher.java index f7ff92b..fd4ffbc 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/app/dispatcher/AppJobServiceDispatcher.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/app/dispatcher/AppJobServiceDispatcher.java @@ -17,7 +17,7 @@ import top.niunaijun.blackbox.entity.JobRecord; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class AppJobServiceDispatcher { private static final AppJobServiceDispatcher sServiceDispatcher = new AppJobServiceDispatcher(); diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/app/dispatcher/AppServiceDispatcher.java b/Bcore/src/main/java/top/niunaijun/blackbox/app/dispatcher/AppServiceDispatcher.java index 1ba2fdc..618f09b 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/app/dispatcher/AppServiceDispatcher.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/app/dispatcher/AppServiceDispatcher.java @@ -25,7 +25,7 @@ import static android.app.Service.START_NOT_STICKY; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class AppServiceDispatcher { public static final String TAG = "AppServiceDispatcher"; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/core/CrashHandler.java b/Bcore/src/main/java/top/niunaijun/blackbox/core/CrashHandler.java index a21b76a..94daa6b 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/core/CrashHandler.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/core/CrashHandler.java @@ -8,7 +8,7 @@ import top.niunaijun.blackbox.BlackBoxCore; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class CrashHandler implements Thread.UncaughtExceptionHandler { private Thread.UncaughtExceptionHandler mDefaultHandler; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/core/GmsCore.java b/Bcore/src/main/java/top/niunaijun/blackbox/core/GmsCore.java index d56bb7e..9704a2e 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/core/GmsCore.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/core/GmsCore.java @@ -14,7 +14,7 @@ import top.niunaijun.blackbox.entity.pm.InstallResult; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class GmsCore { private static final String TAG = "GmsCore"; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/core/IOCore.java b/Bcore/src/main/java/top/niunaijun/blackbox/core/IOCore.java index 05e5d09..29f325e 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/core/IOCore.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/core/IOCore.java @@ -28,7 +28,7 @@ import top.niunaijun.blackbox.utils.TrieTree; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ @SuppressLint("SdCardPath") public class IOCore { diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/core/NativeCore.java b/Bcore/src/main/java/top/niunaijun/blackbox/core/NativeCore.java index d2d710f..bc38c8f 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/core/NativeCore.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/core/NativeCore.java @@ -23,7 +23,7 @@ import top.niunaijun.blackbox.utils.Slog; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class NativeCore { public static final String TAG = "NativeCore"; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/core/env/AppSystemEnv.java b/Bcore/src/main/java/top/niunaijun/blackbox/core/env/AppSystemEnv.java index 9457918..36b1c3a 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/core/env/AppSystemEnv.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/core/env/AppSystemEnv.java @@ -15,7 +15,7 @@ import top.niunaijun.blackbox.utils.compat.BuildCompat; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class AppSystemEnv { private static final List sSystemPackages = new ArrayList<>(); diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/core/env/BEnvironment.java b/Bcore/src/main/java/top/niunaijun/blackbox/core/env/BEnvironment.java index fb768f5..cab3702 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/core/env/BEnvironment.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/core/env/BEnvironment.java @@ -13,7 +13,7 @@ import top.niunaijun.blackbox.utils.FileUtils; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class BEnvironment { private static final File sVirtualRoot = new File(BlackBoxCore.getContext().getCacheDir().getParent(), "blackbox"); diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/BProcessManagerService.java b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/BProcessManagerService.java index c6bb771..17d29a8 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/BProcessManagerService.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/BProcessManagerService.java @@ -39,7 +39,7 @@ import top.niunaijun.blackbox.utils.provider.ProviderCall; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class BProcessManagerService implements ISystemService { public static final String TAG = "BProcessManager"; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/BlackBoxSystem.java b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/BlackBoxSystem.java index e5f9b8a..cbcf447 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/BlackBoxSystem.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/BlackBoxSystem.java @@ -35,7 +35,7 @@ import top.niunaijun.blackbox.core.system.JarManager; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class BlackBoxSystem { private static BlackBoxSystem sBlackBoxSystem; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/ISystemService.java b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/ISystemService.java index 8a6e8ff..207a867 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/ISystemService.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/ISystemService.java @@ -6,7 +6,7 @@ package top.niunaijun.blackbox.core.system; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public interface ISystemService { void systemReady(); diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/ServiceManager.java b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/ServiceManager.java index ea82ca5..46b8d92 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/ServiceManager.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/ServiceManager.java @@ -22,7 +22,7 @@ import top.niunaijun.blackbox.core.system.user.BUserManagerService; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class ServiceManager { private static ServiceManager sServiceManager = null; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/SystemCallProvider.java b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/SystemCallProvider.java index 2ac42d0..eaee62c 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/SystemCallProvider.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/SystemCallProvider.java @@ -19,7 +19,7 @@ import top.niunaijun.blackbox.utils.compat.BundleCompat; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class SystemCallProvider extends ContentProvider { public static final String TAG = "SystemCallProvider"; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/am/ActiveServices.java b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/am/ActiveServices.java index 932196f..bb23c2b 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/am/ActiveServices.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/am/ActiveServices.java @@ -34,7 +34,7 @@ import top.niunaijun.blackbox.proxy.record.ProxyServiceRecord; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ @SuppressLint("NewApi") public class ActiveServices { diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/am/ActivityRecord.java b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/am/ActivityRecord.java index 51392d0..8d32150 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/am/ActivityRecord.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/am/ActivityRecord.java @@ -15,7 +15,7 @@ import top.niunaijun.blackbox.core.system.ProcessRecord; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class ActivityRecord extends Binder { public TaskRecord task; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/am/ActivityStack.java b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/am/ActivityStack.java index 15318e5..b9c19da 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/am/ActivityStack.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/am/ActivityStack.java @@ -49,7 +49,7 @@ import static android.content.pm.PackageManager.GET_ACTIVITIES; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ @SuppressWarnings({"deprecation", "unchecked"}) public class ActivityStack { diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/am/BActivityManagerService.java b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/am/BActivityManagerService.java index b6cf4f8..20eb00e 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/am/BActivityManagerService.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/am/BActivityManagerService.java @@ -36,7 +36,7 @@ import static android.content.pm.PackageManager.GET_META_DATA; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class BActivityManagerService extends IBActivityManagerService.Stub implements ISystemService { public static final String TAG = "BActivityManagerService"; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/am/BJobManagerService.java b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/am/BJobManagerService.java index d989c13..7e25000 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/am/BJobManagerService.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/am/BJobManagerService.java @@ -28,7 +28,7 @@ import top.niunaijun.blackbox.proxy.ProxyManifest; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class BJobManagerService extends IBJobManagerService.Stub implements ISystemService { private static final BJobManagerService sService = new BJobManagerService(); diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/am/TaskRecord.java b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/am/TaskRecord.java index 69d8f8a..fca36e5 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/am/TaskRecord.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/am/TaskRecord.java @@ -11,7 +11,7 @@ import java.util.List; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class TaskRecord { public int id; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/am/UserSpace.java b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/am/UserSpace.java index 1a5d6da..284d1a8 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/am/UserSpace.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/am/UserSpace.java @@ -11,7 +11,7 @@ import java.util.Map; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class UserSpace { public final ActiveServices mActiveServices = new ActiveServices(); diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/os/BStorageManagerService.java b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/os/BStorageManagerService.java index 0066d73..3190f7d 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/os/BStorageManagerService.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/os/BStorageManagerService.java @@ -23,7 +23,7 @@ import top.niunaijun.blackbox.utils.compat.BuildCompat; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class BStorageManagerService extends IBStorageManagerService.Stub implements ISystemService { private static final BStorageManagerService sService = new BStorageManagerService(); diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/BPackage.java b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/BPackage.java index 27a2284..3841fcd 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/BPackage.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/BPackage.java @@ -28,7 +28,7 @@ import top.niunaijun.blackbox.utils.compat.BuildCompat; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class BPackage implements Parcelable { public ArrayList activities = new ArrayList(0); diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/BPackageInstallerService.java b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/BPackageInstallerService.java index b9fac0d..50d07e3 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/BPackageInstallerService.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/BPackageInstallerService.java @@ -19,7 +19,7 @@ import top.niunaijun.blackbox.utils.Slog; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class BPackageInstallerService extends IBPackageInstallerService.Stub implements ISystemService { private static final BPackageInstallerService sService = new BPackageInstallerService(); diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/BPackageManagerService.java b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/BPackageManagerService.java index c3bc63a..8756852 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/BPackageManagerService.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/BPackageManagerService.java @@ -55,7 +55,7 @@ import static android.content.pm.PackageManager.MATCH_DIRECT_BOOT_UNAWARE; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class BPackageManagerService extends IBPackageManagerService.Stub implements ISystemService { public static final String TAG = "BPackageManagerService"; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/BPackageSettings.java b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/BPackageSettings.java index ea0726a..0e21ea4 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/BPackageSettings.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/BPackageSettings.java @@ -22,7 +22,7 @@ import top.niunaijun.blackbox.utils.FileUtils; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class BPackageSettings implements Parcelable { public BPackage pkg; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/BPackageUserState.java b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/BPackageUserState.java index fa78022..e5f593b 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/BPackageUserState.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/BPackageUserState.java @@ -9,7 +9,7 @@ import android.os.Parcelable; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class BPackageUserState implements Parcelable { public boolean installed; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/BXposedManagerService.java b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/BXposedManagerService.java index 0c40550..35895c6 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/BXposedManagerService.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/BXposedManagerService.java @@ -28,7 +28,7 @@ import top.niunaijun.blackbox.utils.compat.XposedParserCompat; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class BXposedManagerService extends IBXposedManagerService.Stub implements ISystemService, PackageMonitor { private static final BXposedManagerService sService = new BXposedManagerService(); diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/ComponentResolver.java b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/ComponentResolver.java index 3241a43..84f8385 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/ComponentResolver.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/ComponentResolver.java @@ -21,7 +21,7 @@ import top.niunaijun.blackbox.utils.Slog; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class ComponentResolver { public static final String TAG = "ComponentResolver"; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/PackageManagerCompat.java b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/PackageManagerCompat.java index f4ae8b2..c610180 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/PackageManagerCompat.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/PackageManagerCompat.java @@ -39,7 +39,7 @@ import top.niunaijun.blackbox.utils.compat.BuildCompat; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ @SuppressLint({"SdCardPath", "NewApi"}) public class PackageManagerCompat { diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/PackageMonitor.java b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/PackageMonitor.java index 9fb51a0..54cc532 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/PackageMonitor.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/PackageMonitor.java @@ -6,7 +6,7 @@ package top.niunaijun.blackbox.core.system.pm; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public interface PackageMonitor { void onPackageUninstalled(String packageName, boolean isRemove, int userId); diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/Settings.java b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/Settings.java index 0d893b6..2b49db8 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/Settings.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/Settings.java @@ -30,7 +30,7 @@ import top.niunaijun.blackbox.utils.compat.PackageParserCompat; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ /*public*/ class Settings { public static final String TAG = "Settings"; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/installer/CopyExecutor.java b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/installer/CopyExecutor.java index 395a893..2fccc00 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/installer/CopyExecutor.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/installer/CopyExecutor.java @@ -16,7 +16,7 @@ import top.niunaijun.blackbox.utils.NativeUtils; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * * 拷贝文件相关 */ public class CopyExecutor implements Executor { diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/installer/CreatePackageExecutor.java b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/installer/CreatePackageExecutor.java index 3e01408..6614d46 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/installer/CreatePackageExecutor.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/installer/CreatePackageExecutor.java @@ -11,7 +11,7 @@ import top.niunaijun.blackbox.utils.FileUtils; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * * 创建包相关的信息 */ public class CreatePackageExecutor implements Executor { diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/installer/CreateUserExecutor.java b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/installer/CreateUserExecutor.java index a52b8fd..2bc7ca7 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/installer/CreateUserExecutor.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/installer/CreateUserExecutor.java @@ -11,7 +11,7 @@ import top.niunaijun.blackbox.utils.FileUtils; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * * 创建用户相关 */ public class CreateUserExecutor implements Executor { diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/installer/Executor.java b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/installer/Executor.java index 6fd5696..5201b29 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/installer/Executor.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/installer/Executor.java @@ -9,7 +9,7 @@ import top.niunaijun.blackbox.entity.pm.InstallOption; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public interface Executor { public static final String TAG = "InstallExecutor"; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/installer/RemoveAppExecutor.java b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/installer/RemoveAppExecutor.java index 9c82191..355f97b 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/installer/RemoveAppExecutor.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/installer/RemoveAppExecutor.java @@ -11,7 +11,7 @@ import top.niunaijun.blackbox.utils.FileUtils; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class RemoveAppExecutor implements Executor { @Override diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/installer/RemoveUserExecutor.java b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/installer/RemoveUserExecutor.java index 0bb3b87..58cb87c 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/installer/RemoveUserExecutor.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/pm/installer/RemoveUserExecutor.java @@ -11,7 +11,7 @@ import top.niunaijun.blackbox.utils.FileUtils; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * * 创建用户相关 */ public class RemoveUserExecutor implements Executor { diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/user/BUserInfo.java b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/user/BUserInfo.java index 2d75a1b..87ba6ec 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/user/BUserInfo.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/user/BUserInfo.java @@ -9,7 +9,7 @@ import android.os.Parcelable; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class BUserInfo implements Parcelable { public int id; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/user/BUserManagerService.java b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/user/BUserManagerService.java index abf56b4..8c10ba5 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/user/BUserManagerService.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/user/BUserManagerService.java @@ -26,7 +26,7 @@ import top.niunaijun.blackbox.utils.FileUtils; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class BUserManagerService extends IBUserManagerService.Stub implements ISystemService { private static BUserManagerService sService = new BUserManagerService(); diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/user/BUserStatus.java b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/user/BUserStatus.java index 6305730..4550ca8 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/core/system/user/BUserStatus.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/core/system/user/BUserStatus.java @@ -6,7 +6,7 @@ package top.niunaijun.blackbox.core.system.user; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public enum BUserStatus { ENABLE, DISABLE diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/entity/AppConfig.java b/Bcore/src/main/java/top/niunaijun/blackbox/entity/AppConfig.java index 49653ed..2356d86 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/entity/AppConfig.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/entity/AppConfig.java @@ -11,7 +11,7 @@ import android.os.Parcelable; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class AppConfig implements Parcelable { public static final String KEY = "BlackBox_client_config"; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/entity/JobRecord.java b/Bcore/src/main/java/top/niunaijun/blackbox/entity/JobRecord.java index 637b170..002d950 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/entity/JobRecord.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/entity/JobRecord.java @@ -13,7 +13,7 @@ import android.os.Parcelable; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class JobRecord implements Parcelable { diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/entity/ServiceRecord.java b/Bcore/src/main/java/top/niunaijun/blackbox/entity/ServiceRecord.java index 9a53ec9..ede2a15 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/entity/ServiceRecord.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/entity/ServiceRecord.java @@ -15,7 +15,7 @@ import java.util.concurrent.atomic.AtomicInteger; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class ServiceRecord { private Service mService; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/entity/UnbindRecord.java b/Bcore/src/main/java/top/niunaijun/blackbox/entity/UnbindRecord.java index c6e9536..ecf48e2 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/entity/UnbindRecord.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/entity/UnbindRecord.java @@ -10,7 +10,7 @@ import android.os.Parcelable; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class UnbindRecord implements Parcelable { private int mBindCount; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/entity/pm/InstallOption.java b/Bcore/src/main/java/top/niunaijun/blackbox/entity/pm/InstallOption.java index 338dbb4..7f08d1e 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/entity/pm/InstallOption.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/entity/pm/InstallOption.java @@ -9,7 +9,7 @@ import android.os.Parcelable; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class InstallOption implements Parcelable { public static final int FLAG_SYSTEM = 1; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/entity/pm/InstallResult.java b/Bcore/src/main/java/top/niunaijun/blackbox/entity/pm/InstallResult.java index 79deab3..59c2dce 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/entity/pm/InstallResult.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/entity/pm/InstallResult.java @@ -11,7 +11,7 @@ import top.niunaijun.blackbox.utils.Slog; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class InstallResult implements Parcelable { public static final String TAG = "InstallResult"; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/entity/pm/InstalledModule.java b/Bcore/src/main/java/top/niunaijun/blackbox/entity/pm/InstalledModule.java index 0011c94..7c12410 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/entity/pm/InstalledModule.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/entity/pm/InstalledModule.java @@ -15,7 +15,7 @@ import top.niunaijun.blackbox.core.system.user.BUserHandle; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class InstalledModule implements Parcelable { public String packageName; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/entity/pm/InstalledPackage.java b/Bcore/src/main/java/top/niunaijun/blackbox/entity/pm/InstalledPackage.java index 66373aa..047f0ba 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/entity/pm/InstalledPackage.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/entity/pm/InstalledPackage.java @@ -16,7 +16,7 @@ import top.niunaijun.blackbox.BlackBoxCore; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class InstalledPackage implements Parcelable { public int userId; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/entity/pm/XposedConfig.java b/Bcore/src/main/java/top/niunaijun/blackbox/entity/pm/XposedConfig.java index ed70257..3b72059 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/entity/pm/XposedConfig.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/entity/pm/XposedConfig.java @@ -12,7 +12,7 @@ import java.util.Map; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class XposedConfig implements Parcelable { public boolean enable; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/FakeCore.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/FakeCore.java index 323e59c..cd618e6 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/FakeCore.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/FakeCore.java @@ -8,7 +8,7 @@ import top.niunaijun.jnihook.ReflectCore; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class FakeCore { public static void init() { diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/delegate/ContentProviderDelegate.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/delegate/ContentProviderDelegate.java index 27b6bd5..a553cf0 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/delegate/ContentProviderDelegate.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/delegate/ContentProviderDelegate.java @@ -30,7 +30,7 @@ import top.niunaijun.blackbox.utils.compat.BuildCompat; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class ContentProviderDelegate { public static final String TAG = "ContentProviderDelegate"; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/delegate/InnerReceiverDelegate.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/delegate/InnerReceiverDelegate.java index efb553f..8535d9b 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/delegate/InnerReceiverDelegate.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/delegate/InnerReceiverDelegate.java @@ -21,7 +21,7 @@ import top.niunaijun.blackbox.proxy.record.ProxyBroadcastRecord; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class InnerReceiverDelegate extends IIntentReceiver.Stub { public static final String TAG = "InnerReceiverDelegate"; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/delegate/ServiceConnectionDelegate.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/delegate/ServiceConnectionDelegate.java index 3e9264f..2075598 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/delegate/ServiceConnectionDelegate.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/delegate/ServiceConnectionDelegate.java @@ -18,7 +18,7 @@ import top.niunaijun.blackbox.utils.compat.BuildCompat; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class ServiceConnectionDelegate extends IServiceConnection.Stub { private static final Map sServiceConnectDelegate = new HashMap<>(); diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/frameworks/BActivityManager.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/frameworks/BActivityManager.java index fe8047b..c204ca5 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/frameworks/BActivityManager.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/frameworks/BActivityManager.java @@ -25,7 +25,7 @@ import top.niunaijun.blackbox.utils.Slog; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class BActivityManager extends BlackManager { private static final String TAG = "BActivityManager"; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/frameworks/BJobManager.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/frameworks/BJobManager.java index 0a8870b..29af5f7 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/frameworks/BJobManager.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/frameworks/BJobManager.java @@ -14,7 +14,7 @@ import top.niunaijun.blackbox.entity.JobRecord; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class BJobManager extends BlackManager { private static final BJobManager sJobManager = new BJobManager(); diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/frameworks/BPackageManager.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/frameworks/BPackageManager.java index 1937ea9..ecf42ee 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/frameworks/BPackageManager.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/frameworks/BPackageManager.java @@ -32,7 +32,7 @@ import top.niunaijun.blackbox.utils.TransactionThrottler; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class BPackageManager extends BlackManager { private static final BPackageManager sPackageManager = new BPackageManager(); diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/frameworks/BStorageManager.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/frameworks/BStorageManager.java index 3e869a5..0b367a6 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/frameworks/BStorageManager.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/frameworks/BStorageManager.java @@ -13,7 +13,7 @@ import top.niunaijun.blackbox.core.system.os.IBStorageManagerService; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class BStorageManager extends BlackManager { private static final BStorageManager sStorageManager = new BStorageManager(); diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/frameworks/BUserManager.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/frameworks/BUserManager.java index db7e64a..b382297 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/frameworks/BUserManager.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/frameworks/BUserManager.java @@ -18,7 +18,7 @@ import top.niunaijun.blackbox.utils.Slog; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class BUserManager extends BlackManager { private static final String TAG = "BUserManager"; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/frameworks/BXposedManager.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/frameworks/BXposedManager.java index 16afa71..a6f7959 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/frameworks/BXposedManager.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/frameworks/BXposedManager.java @@ -15,7 +15,7 @@ import top.niunaijun.blackbox.entity.pm.InstalledModule; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class BXposedManager extends BlackManager { private static final BXposedManager sXposedManager = new BXposedManager(); diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/hook/BinderInvocationStub.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/hook/BinderInvocationStub.java index de5039f..f54480d 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/hook/BinderInvocationStub.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/hook/BinderInvocationStub.java @@ -19,7 +19,7 @@ import black.android.os.BRServiceManager; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public abstract class BinderInvocationStub extends ClassInvocationStub implements IBinder { private IBinder mBaseBinder; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/hook/ClassInvocationStub.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/hook/ClassInvocationStub.java index 6d9df97..1aaf8aa 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/hook/ClassInvocationStub.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/hook/ClassInvocationStub.java @@ -17,7 +17,7 @@ import top.niunaijun.blackbox.utils.MethodParameterUtils; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public abstract class ClassInvocationStub implements InvocationHandler, IInjectHook { public static final String TAG = ClassInvocationStub.class.getSimpleName(); diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/hook/HookManager.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/hook/HookManager.java index a2043a6..b45a413 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/hook/HookManager.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/hook/HookManager.java @@ -98,7 +98,7 @@ import top.niunaijun.blackbox.fake.service.WorkManagerProxy; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class HookManager { public static final String TAG = "HookManager"; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/hook/IInjectHook.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/hook/IInjectHook.java index 191a15b..46d0880 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/hook/IInjectHook.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/hook/IInjectHook.java @@ -6,7 +6,7 @@ package top.niunaijun.blackbox.fake.hook; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public interface IInjectHook { void injectHook(); diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/hook/MethodHook.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/hook/MethodHook.java index b47baf4..0e4ee82 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/hook/MethodHook.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/hook/MethodHook.java @@ -10,7 +10,7 @@ import top.niunaijun.blackbox.BlackBoxCore; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public abstract class MethodHook { protected String getMethodName() { diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/hook/ProxyMethod.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/hook/ProxyMethod.java index b25800a..76324a4 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/hook/ProxyMethod.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/hook/ProxyMethod.java @@ -11,7 +11,7 @@ import java.lang.annotation.Target; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/hook/ProxyMethods.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/hook/ProxyMethods.java index 1c568fe..2df6130 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/hook/ProxyMethods.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/hook/ProxyMethods.java @@ -11,7 +11,7 @@ import java.lang.annotation.Target; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/hook/ScanClass.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/hook/ScanClass.java index 7c658ce..8816ae4 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/hook/ScanClass.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/hook/ScanClass.java @@ -11,7 +11,7 @@ import java.lang.annotation.Target; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/provider/FileProvider.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/provider/FileProvider.java index 4160a86..c2c8ecf 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/provider/FileProvider.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/provider/FileProvider.java @@ -36,7 +36,7 @@ import static org.xmlpull.v1.XmlPullParser.START_TAG; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class FileProvider extends ContentProvider { private static final String[] COLUMNS = { diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/provider/FileProviderHandler.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/provider/FileProviderHandler.java index 1baf00c..a460421 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/provider/FileProviderHandler.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/provider/FileProviderHandler.java @@ -17,7 +17,7 @@ import top.niunaijun.blackbox.utils.compat.BuildCompat; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class FileProviderHandler { diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/ActivityManagerCommonProxy.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/ActivityManagerCommonProxy.java index dc5b8c2..3cbc3d8 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/ActivityManagerCommonProxy.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/ActivityManagerCommonProxy.java @@ -30,7 +30,7 @@ import static android.content.pm.PackageManager.GET_META_DATA; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class ActivityManagerCommonProxy { public static final String TAG = "CommonStub"; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/HCallbackProxy.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/HCallbackProxy.java index 81fdd19..d38f7c7 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/HCallbackProxy.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/HCallbackProxy.java @@ -43,7 +43,7 @@ import top.niunaijun.blackbox.utils.compat.BuildCompat; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class HCallbackProxy implements IInjectHook, Handler.Callback { public static final String TAG = "HCallbackStub"; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IAccessibilityManagerProxy.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IAccessibilityManagerProxy.java index 71734f9..cecbf8b 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IAccessibilityManagerProxy.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IAccessibilityManagerProxy.java @@ -19,7 +19,7 @@ import top.niunaijun.blackbox.fake.hook.ProxyMethods; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class IAccessibilityManagerProxy extends BinderInvocationStub { diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IAccountManagerProxy.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IAccountManagerProxy.java index a3746d5..482c752 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IAccountManagerProxy.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IAccountManagerProxy.java @@ -22,7 +22,7 @@ import top.niunaijun.blackbox.utils.Slog; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class IAccountManagerProxy extends BinderInvocationStub { public static final String TAG = "IAccountManagerProxy"; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IActivityManagerProxy.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IActivityManagerProxy.java index 1eab005..8f19079 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IActivityManagerProxy.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IActivityManagerProxy.java @@ -67,7 +67,7 @@ import static android.content.pm.PackageManager.PERMISSION_GRANTED; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ @ScanClass(ActivityManagerCommonProxy.class) public class IActivityManagerProxy extends ClassInvocationStub { diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IActivityTaskManagerProxy.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IActivityTaskManagerProxy.java index 8640baa..b0fcc81 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IActivityTaskManagerProxy.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IActivityTaskManagerProxy.java @@ -20,7 +20,7 @@ import top.niunaijun.blackbox.utils.compat.TaskDescriptionCompat; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ @ScanClass(ActivityManagerCommonProxy.class) public class IActivityTaskManagerProxy extends BinderInvocationStub { diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IAlarmManagerProxy.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IAlarmManagerProxy.java index 872e32f..c279ea9 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IAlarmManagerProxy.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IAlarmManagerProxy.java @@ -16,7 +16,7 @@ import top.niunaijun.blackbox.fake.hook.ProxyMethod; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class IAlarmManagerProxy extends BinderInvocationStub { diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IAppOpsManagerProxy.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IAppOpsManagerProxy.java index c2642f0..9124e5a 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IAppOpsManagerProxy.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IAppOpsManagerProxy.java @@ -22,7 +22,7 @@ import top.niunaijun.blackbox.utils.Slog; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class IAppOpsManagerProxy extends BinderInvocationStub { public IAppOpsManagerProxy() { diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IAppWidgetManagerProxy.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IAppWidgetManagerProxy.java index 9a0f5a3..f64b9f0 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IAppWidgetManagerProxy.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IAppWidgetManagerProxy.java @@ -16,7 +16,7 @@ import top.niunaijun.blackbox.utils.MethodParameterUtils; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class IAppWidgetManagerProxy extends BinderInvocationStub { diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IAutofillManagerProxy.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IAutofillManagerProxy.java index 54d44a9..829e959 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IAutofillManagerProxy.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IAutofillManagerProxy.java @@ -19,7 +19,7 @@ import top.niunaijun.blackbox.proxy.ProxyManifest; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class IAutofillManagerProxy extends BinderInvocationStub { public static final String TAG = "AutofillManagerStub"; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IConnectivityManagerProxy.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IConnectivityManagerProxy.java index 8a4ad5a..bff2cd3 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IConnectivityManagerProxy.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IConnectivityManagerProxy.java @@ -27,7 +27,7 @@ import top.niunaijun.blackbox.utils.Slog; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ @ScanClass(VpnCommonProxy.class) public class IConnectivityManagerProxy extends BinderInvocationStub { @@ -271,6 +271,75 @@ public class IConnectivityManagerProxy extends BinderInvocationStub { } } + // Hook for getAllNetworks - critical for modern apps to list networks + @ProxyMethod("getAllNetworks") + public static class GetAllNetworks extends MethodHook { + @Override + protected Object hook(Object who, Method method, Object[] args) throws Throwable { + try { + // Try original + Object result = method.invoke(who, args); + if (result != null) { + // Check if array is empty + if (Array.getLength(result) > 0) { + return result; + } + } + } catch (Exception e) { + // Ignore + } + + Slog.d(TAG, "Creating fallback Network[] for getAllNetworks"); + + // Try to align with GetActiveNetwork to ensure consistency + try { + // Finds the getActiveNetwork method on the proxy to call it properly + Method getActiveNetworkMethod = null; + try { + getActiveNetworkMethod = who.getClass().getMethod("getActiveNetwork"); + } catch (NoSuchMethodException e) { + // Try searching by name if exact match fails + for (Method m : who.getClass().getMethods()) { + if (m.getName().equals("getActiveNetwork")) { + getActiveNetworkMethod = m; + break; + } + } + } + + if (getActiveNetworkMethod != null) { + Object activeNetwork = getActiveNetworkMethod.invoke(who); + if (activeNetwork != null) { + Class networkClass = activeNetwork.getClass(); + Object networkArray = Array.newInstance(networkClass, 1); + Array.set(networkArray, 0, activeNetwork); + Slog.d(TAG, "Refilled getAllNetworks with Active Network: " + activeNetwork); + return networkArray; + } + } + } catch (Exception e) { + Slog.w(TAG, "Failed to use Active Network for fallback: " + e.getMessage()); + } + + // Create array with 1 fake network as last resort + try { + Class networkClass = Class.forName("android.net.Network"); + Object networkArray = Array.newInstance(networkClass, 1); + + // Create fake network (Network(1)) + // Note: Network(int) is hidden, but accessible via reflection + Constructor constructor = networkClass.getConstructor(int.class); + Object network = constructor.newInstance(1); + + Array.set(networkArray, 0, network); + return networkArray; + } catch (Exception e) { + Slog.w(TAG, "Failed to create fallback Network[]: " + e.getMessage()); + return method.invoke(who, args); + } + } + } + // Enhanced hook for getNetworkCapabilities for API 21+ @ProxyMethod("getNetworkCapabilities") public static class GetNetworkCapabilities extends MethodHook { @@ -278,21 +347,33 @@ public class IConnectivityManagerProxy extends BinderInvocationStub { protected Object hook(Object who, Method method, Object[] args) throws Throwable { if (android.os.Build.VERSION.SDK_INT >= 21) { try { + // Try to get real capabilities first + Object result = method.invoke(who, args); + if (result != null) { + // Force add capabilities to the real result to ensure app thinks it has internet + try { + Method addCapabilityMethod = result.getClass().getMethod("addCapability", int.class); + addCapabilityMethod.setAccessible(true); + addCapabilityMethod.invoke(result, 12); // NET_CAPABILITY_INTERNET + addCapabilityMethod.invoke(result, 16); // NET_CAPABILITY_VALIDATED + } catch (Exception e) { + // Ignore if method not found (e.g. immutable on some versions) + e.printStackTrace(); + } + return result; + } + // Create NetworkCapabilities using API-specific methods Object nc; // Use the universal NetworkCapabilities creation method for all API levels nc = IConnectivityManagerProxy.createNetworkCapabilities(); if (nc != null) { - Slog.d(TAG, "Created enhanced NetworkCapabilities for sandboxed app"); + Slog.d(TAG, "Created enhanced NetworkCapabilities for sandboxed app (fallback)"); return nc; - } else { - Slog.w(TAG, "Failed to create NetworkCapabilities, falling back to original method"); - return method.invoke(who, args); } } catch (Exception e) { Slog.w(TAG, "Error creating NetworkCapabilities: " + e.getMessage()); - return method.invoke(who, args); } } return method.invoke(who, args); @@ -306,6 +387,12 @@ public class IConnectivityManagerProxy extends BinderInvocationStub { protected Object hook(Object who, Method method, Object[] args) throws Throwable { if (android.os.Build.VERSION.SDK_INT >= 21) { try { + // Try to get real active network first + Object result = method.invoke(who, args); + if (result != null) { + return result; + } + // Create a mock Network object to ensure proper binding // Use reflection to handle different constructor signatures android.net.Network network; @@ -325,17 +412,43 @@ public class IConnectivityManagerProxy extends BinderInvocationStub { return method.invoke(who, args); } } - Slog.d(TAG, "Created mock Network object for sandboxed app"); + Slog.d(TAG, "Created mock Network object for sandboxed app (fallback)"); return network; } catch (Exception e) { Slog.w(TAG, "Error creating Network object: " + e.getMessage()); - return method.invoke(who, args); } } return method.invoke(who, args); } } + // Hook for getActiveNetworkInfo - critical for legacy internet checks + @ProxyMethod("getActiveNetworkInfo") + public static class GetActiveNetworkInfo extends MethodHook { + @Override + protected Object hook(Object who, Method method, Object[] args) throws Throwable { + try { + Object result = method.invoke(who, args); + if (result != null) { + // Force CONNECTED state + try { + Method setDetailedState = result.getClass().getMethod("setDetailedState", + android.net.NetworkInfo.DetailedState.class, String.class, String.class); + setDetailedState.setAccessible(true); + setDetailedState.invoke(result, android.net.NetworkInfo.DetailedState.CONNECTED, null, null); + } catch (Exception e) { + // Ignore + } + return result; + } + } catch (Exception e) { + // Ignore + } + Slog.d(TAG, "Creating fallback NetworkInfo for getActiveNetworkInfo"); + return createNetworkInfo(ConnectivityManager.TYPE_WIFI, 0, "WIFI", ""); + } + } + // Hook for getLinkProperties to handle DNS configuration @ProxyMethod("getLinkProperties") public static class GetLinkProperties extends MethodHook { @@ -343,20 +456,21 @@ public class IConnectivityManagerProxy extends BinderInvocationStub { protected Object hook(Object who, Method method, Object[] args) throws Throwable { if (android.os.Build.VERSION.SDK_INT >= 21) { try { + // Try to get real link properties first + Object result = method.invoke(who, args); + if (result != null) { + return result; + } + // Create LinkProperties using the universal method for all API levels Object linkProperties = IConnectivityManagerProxy.createLinkProperties(); if (linkProperties != null) { - Slog.d(TAG, "Created LinkProperties with DNS configuration for sandboxed app"); + Slog.d(TAG, "Created LinkProperties with DNS configuration for sandboxed app (fallback)"); return linkProperties; - } else { - Slog.w(TAG, "Failed to create LinkProperties, falling back to original method"); - return method.invoke(who, args); } - } catch (Exception e) { Slog.w(TAG, "Error creating LinkProperties: " + e.getMessage()); - return method.invoke(who, args); } } return method.invoke(who, args); @@ -506,6 +620,15 @@ public class IConnectivityManagerProxy extends BinderInvocationStub { // Try to use the original method first Object result = method.invoke(who, args); if (result != null) { + // Force CONNECTED state + try { + Method setDetailedState = result.getClass().getMethod("setDetailedState", + android.net.NetworkInfo.DetailedState.class, String.class, String.class); + setDetailedState.setAccessible(true); + setDetailedState.invoke(result, android.net.NetworkInfo.DetailedState.CONNECTED, null, null); + } catch (Exception e) { + // Ignore + } return result; } @@ -690,6 +813,15 @@ public class IConnectivityManagerProxy extends BinderInvocationStub { // Try to use the original method first Object result = method.invoke(who, args); if (result != null) { + // Force CONNECTED state + try { + Method setDetailedState = result.getClass().getMethod("setDetailedState", + android.net.NetworkInfo.DetailedState.class, String.class, String.class); + setDetailedState.setAccessible(true); + setDetailedState.invoke(result, android.net.NetworkInfo.DetailedState.CONNECTED, null, null); + } catch (Exception e) { + // Ignore + } return result; } @@ -724,6 +856,15 @@ public class IConnectivityManagerProxy extends BinderInvocationStub { // Try to use the original method first Object result = method.invoke(who, args); if (result != null) { + // Force CONNECTED state + try { + Method setDetailedState = result.getClass().getMethod("setDetailedState", + android.net.NetworkInfo.DetailedState.class, String.class, String.class); + setDetailedState.setAccessible(true); + setDetailedState.invoke(result, android.net.NetworkInfo.DetailedState.CONNECTED, null, null); + } catch (Exception e) { + // Ignore + } return result; } diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IDeviceIdentifiersPolicyProxy.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IDeviceIdentifiersPolicyProxy.java index 9343a1a..90b757d 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IDeviceIdentifiersPolicyProxy.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IDeviceIdentifiersPolicyProxy.java @@ -17,7 +17,7 @@ import top.niunaijun.blackbox.utils.Md5Utils; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class IDeviceIdentifiersPolicyProxy extends BinderInvocationStub { diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IDevicePolicyManagerProxy.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IDevicePolicyManagerProxy.java index 3c411d9..3391b49 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IDevicePolicyManagerProxy.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IDevicePolicyManagerProxy.java @@ -18,7 +18,7 @@ import top.niunaijun.blackbox.utils.MethodParameterUtils; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class IDevicePolicyManagerProxy extends BinderInvocationStub { public IDevicePolicyManagerProxy() { diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IDisplayManagerProxy.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IDisplayManagerProxy.java index adc3d63..4c2b4b2 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IDisplayManagerProxy.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IDisplayManagerProxy.java @@ -17,7 +17,7 @@ import top.niunaijun.blackbox.utils.MethodParameterUtils; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class IDisplayManagerProxy extends ClassInvocationStub { diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IGraphicsStatsProxy.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IGraphicsStatsProxy.java index f086de1..766f2f3 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IGraphicsStatsProxy.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IGraphicsStatsProxy.java @@ -15,7 +15,7 @@ import top.niunaijun.blackbox.utils.MethodParameterUtils; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class IGraphicsStatsProxy extends BinderInvocationStub { diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/ILauncherAppsProxy.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/ILauncherAppsProxy.java index e08826e..e9cd938 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/ILauncherAppsProxy.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/ILauncherAppsProxy.java @@ -15,7 +15,7 @@ import top.niunaijun.blackbox.utils.MethodParameterUtils; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class ILauncherAppsProxy extends BinderInvocationStub { diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/ILocationManagerProxy.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/ILocationManagerProxy.java index 59241f5..970e918 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/ILocationManagerProxy.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/ILocationManagerProxy.java @@ -28,7 +28,7 @@ import top.niunaijun.blackbox.utils.MethodParameterUtils; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class ILocationManagerProxy extends BinderInvocationStub { public static final String TAG = "ILocationManagerProxy"; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IMediaSessionManagerProxy.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IMediaSessionManagerProxy.java index d5697f9..b20edd8 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IMediaSessionManagerProxy.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IMediaSessionManagerProxy.java @@ -17,7 +17,7 @@ import top.niunaijun.blackbox.fake.hook.ProxyMethod; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class IMediaSessionManagerProxy extends BinderInvocationStub { diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/INotificationManagerProxy.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/INotificationManagerProxy.java index 41a5580..fcf6409 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/INotificationManagerProxy.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/INotificationManagerProxy.java @@ -28,7 +28,7 @@ import top.niunaijun.blackbox.utils.compat.ParceledListSliceCompat; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class INotificationManagerProxy extends BinderInvocationStub { public static final String TAG = "INotificationManagerProxy"; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IShortcutManagerProxy.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IShortcutManagerProxy.java index 61af909..6ad5d90 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IShortcutManagerProxy.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IShortcutManagerProxy.java @@ -22,7 +22,7 @@ import top.niunaijun.blackbox.utils.compat.ParceledListSliceCompat; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * * 未实现,全部拦截 */ public class IShortcutManagerProxy extends BinderInvocationStub { diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IStorageManagerProxy.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IStorageManagerProxy.java index 06e7dfa..ab08b37 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IStorageManagerProxy.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IStorageManagerProxy.java @@ -21,7 +21,7 @@ import top.niunaijun.blackbox.utils.compat.BuildCompat; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class IStorageManagerProxy extends BinderInvocationStub { diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/ITelephonyManagerProxy.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/ITelephonyManagerProxy.java index 8639b48..eccb926 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/ITelephonyManagerProxy.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/ITelephonyManagerProxy.java @@ -26,7 +26,7 @@ import top.niunaijun.blackbox.utils.Md5Utils; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class ITelephonyManagerProxy extends BinderInvocationStub { public static final String TAG = "ITelephonyManagerProxy"; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/ITelephonyRegistryProxy.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/ITelephonyRegistryProxy.java index b5434a2..9866cf1 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/ITelephonyRegistryProxy.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/ITelephonyRegistryProxy.java @@ -15,7 +15,7 @@ import top.niunaijun.blackbox.utils.MethodParameterUtils; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class ITelephonyRegistryProxy extends BinderInvocationStub { public ITelephonyRegistryProxy() { diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IUserManagerProxy.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IUserManagerProxy.java index 7f0bc45..93cbb44 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IUserManagerProxy.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IUserManagerProxy.java @@ -20,7 +20,7 @@ import top.niunaijun.blackbox.fake.hook.ProxyMethod; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class IUserManagerProxy extends BinderInvocationStub { public IUserManagerProxy() { diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IVpnManagerProxy.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IVpnManagerProxy.java index bd43030..4bd8abe 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IVpnManagerProxy.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IVpnManagerProxy.java @@ -11,7 +11,7 @@ import top.niunaijun.blackbox.fake.hook.ScanClass; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ @ScanClass(VpnCommonProxy.class) public class IVpnManagerProxy extends BinderInvocationStub { diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IWebViewUpdateServiceProxy.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IWebViewUpdateServiceProxy.java index 356aa94..237ff79 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IWebViewUpdateServiceProxy.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IWebViewUpdateServiceProxy.java @@ -92,8 +92,8 @@ public class IWebViewUpdateServiceProxy extends ClassInvocationStub { public static class IsMultiProcessEnabled extends MethodHook { @Override protected Object hook(Object who, Method method, Object[] args) throws Throwable { - Slog.d(TAG, "WebViewUpdateService: isMultiProcessEnabled called, returning true"); - return true; + Slog.d(TAG, "WebViewUpdateService: isMultiProcessEnabled called, returning false for single-process mode"); + return false; } } diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IWifiManagerProxy.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IWifiManagerProxy.java index 2c3a3c2..4e35281 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IWifiManagerProxy.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IWifiManagerProxy.java @@ -20,7 +20,7 @@ import top.niunaijun.blackbox.fake.hook.ProxyMethod; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class IWifiManagerProxy extends BinderInvocationStub { public static final String TAG = "IWifiManagerProxy"; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IWindowManagerProxy.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IWindowManagerProxy.java index 2f4cefe..f2f0712 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IWindowManagerProxy.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IWindowManagerProxy.java @@ -17,7 +17,7 @@ import top.niunaijun.blackbox.fake.hook.ProxyMethod; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class IWindowManagerProxy extends BinderInvocationStub { public static final String TAG = "WindowManagerStub"; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IWindowSessionProxy.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IWindowSessionProxy.java index ef207f2..5459068 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IWindowSessionProxy.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/IWindowSessionProxy.java @@ -17,7 +17,7 @@ import top.niunaijun.blackbox.fake.hook.ProxyMethod; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class IWindowSessionProxy extends BinderInvocationStub { public static final String TAG = "WindowSessionStub"; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/WebViewProxy.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/WebViewProxy.java index 48f461e..7fbdc59 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/WebViewProxy.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/WebViewProxy.java @@ -84,7 +84,7 @@ public class WebViewProxy extends ClassInvocationStub { if (result instanceof WebView) { WebView webView = (WebView) result; // Configure WebView for better compatibility - configureWebView(webView, context); + configureWebView(webView); } return result; @@ -95,7 +95,7 @@ public class WebViewProxy extends ClassInvocationStub { } } - private void configureWebView(WebView webView, Context context) { + private void configureWebView(WebView webView) { try { WebSettings settings = webView.getSettings(); if (settings != null) { @@ -107,16 +107,60 @@ public class WebViewProxy extends ClassInvocationStub { settings.setDatabaseEnabled(true); // Set cache mode settings.setCacheMode(WebSettings.LOAD_DEFAULT); + + // Enable AppCache (Restored per user request, deprecated/removed in new SDKs) + try { + // Use reflection because methods are removed in API 33+ SDK + Method setAppCacheEnabled = settings.getClass().getMethod("setAppCacheEnabled", boolean.class); + setAppCacheEnabled.invoke(settings, true); + + if (webView.getContext() != null) { + Method setAppCachePath = settings.getClass().getMethod("setAppCachePath", String.class); + setAppCachePath.invoke(settings, webView.getContext().getCacheDir().getAbsolutePath()); + } + } catch (Throwable e) { + // Method missing on newer Android versions/SDKs, ignore + Slog.w(TAG, "WebView: AppCache not supported: " + e.getMessage()); + } + + // CRITICAL: Enable network access explicitly + settings.setBlockNetworkLoads(false); + settings.setBlockNetworkImage(false); + + // Enable file access for local resources + settings.setAllowFileAccess(true); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { + settings.setAllowFileAccessFromFileURLs(true); + settings.setAllowUniversalAccessFromFileURLs(true); + } + // Enable mixed content (for HTTPS sites with HTTP resources) if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { settings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW); } + // Set user agent String userAgent = settings.getUserAgentString(); if (userAgent != null && !userAgent.contains("BlackBox")) { settings.setUserAgentString(userAgent + " BlackBox"); } - Slog.d(TAG, "WebView: Configured successfully"); + + // Force network available + try { + webView.setNetworkAvailable(true); + } catch (Exception e) { + // Ignore + } + + // Allow content access + settings.setAllowContentAccess(true); + + // Disable safe browsing (API 26+) - often fails in sandbox + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + settings.setSafeBrowsingEnabled(false); + } + + Slog.d(TAG, "WebView: Configured successfully with network access enabled"); } } catch (Exception e) { Slog.w(TAG, "WebView: Failed to configure settings", e); diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/context/ContentServiceStub.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/context/ContentServiceStub.java index 9af0b63..841a8b6 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/context/ContentServiceStub.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/context/ContentServiceStub.java @@ -14,7 +14,7 @@ import top.niunaijun.blackbox.fake.hook.ProxyMethod; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class ContentServiceStub extends BinderInvocationStub { diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/context/RestrictionsManagerStub.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/context/RestrictionsManagerStub.java index bea1975..99f1b9d 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/context/RestrictionsManagerStub.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/context/RestrictionsManagerStub.java @@ -17,7 +17,7 @@ import top.niunaijun.blackbox.fake.hook.ProxyMethod; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class RestrictionsManagerStub extends BinderInvocationStub { diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/context/providers/BContentProvider.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/context/providers/BContentProvider.java index e1e7469..f11c2ba 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/context/providers/BContentProvider.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/context/providers/BContentProvider.java @@ -8,7 +8,7 @@ import android.os.IInterface; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public interface BContentProvider { IInterface wrapper(final IInterface contentProviderProxy, final String appPkg); diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/context/providers/ContentProviderStub.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/context/providers/ContentProviderStub.java index 6bd5a94..404d5fe 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/context/providers/ContentProviderStub.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/context/providers/ContentProviderStub.java @@ -19,7 +19,7 @@ import top.niunaijun.blackbox.utils.AttributionSourceUtils; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class ContentProviderStub extends ClassInvocationStub implements BContentProvider { public static final String TAG = "ContentProviderStub"; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/context/providers/SystemProviderStub.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/context/providers/SystemProviderStub.java index 305e3f0..d71531e 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/context/providers/SystemProviderStub.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/context/providers/SystemProviderStub.java @@ -15,7 +15,7 @@ import top.niunaijun.blackbox.utils.compat.ContextCompat; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class SystemProviderStub extends ClassInvocationStub implements BContentProvider { private IInterface mBase; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/libcore/OsStub.java b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/libcore/OsStub.java index a8b6b51..ecb6146 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/libcore/OsStub.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/fake/service/libcore/OsStub.java @@ -19,7 +19,7 @@ import top.niunaijun.blackbox.utils.Reflector; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class OsStub extends ClassInvocationStub { public static final String TAG = "OsStub"; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/proxy/ProxyActivity.java b/Bcore/src/main/java/top/niunaijun/blackbox/proxy/ProxyActivity.java index 03f9586..3f7b554 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/proxy/ProxyActivity.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/proxy/ProxyActivity.java @@ -21,7 +21,7 @@ import top.niunaijun.blackbox.utils.Slog; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class ProxyActivity extends Activity { public static final String TAG = "ProxyActivity"; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/proxy/ProxyContentProvider.java b/Bcore/src/main/java/top/niunaijun/blackbox/proxy/ProxyContentProvider.java index 65220be..5cc96a3 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/proxy/ProxyContentProvider.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/proxy/ProxyContentProvider.java @@ -20,7 +20,7 @@ import top.niunaijun.blackbox.utils.compat.BundleCompat; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class ProxyContentProvider extends ContentProvider { @Override diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/proxy/ProxyJobService.java b/Bcore/src/main/java/top/niunaijun/blackbox/proxy/ProxyJobService.java index 44ef623..499521b 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/proxy/ProxyJobService.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/proxy/ProxyJobService.java @@ -13,7 +13,7 @@ import top.niunaijun.blackbox.app.dispatcher.AppJobServiceDispatcher; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class ProxyJobService extends JobService { public static final String TAG = "StubJobService"; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/proxy/ProxyManifest.java b/Bcore/src/main/java/top/niunaijun/blackbox/proxy/ProxyManifest.java index f02ffd6..cad42b9 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/proxy/ProxyManifest.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/proxy/ProxyManifest.java @@ -10,7 +10,7 @@ import top.niunaijun.blackbox.BlackBoxCore; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class ProxyManifest { public static final int FREE_COUNT = 50; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/proxy/ProxyPendingActivity.java b/Bcore/src/main/java/top/niunaijun/blackbox/proxy/ProxyPendingActivity.java index 1de9f35..de388b4 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/proxy/ProxyPendingActivity.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/proxy/ProxyPendingActivity.java @@ -17,7 +17,7 @@ import top.niunaijun.blackbox.utils.Slog; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class ProxyPendingActivity extends Activity { public static final String TAG = "ProxyPendingActivity"; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/proxy/ProxyService.java b/Bcore/src/main/java/top/niunaijun/blackbox/proxy/ProxyService.java index b039ebc..dd56502 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/proxy/ProxyService.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/proxy/ProxyService.java @@ -18,7 +18,7 @@ import top.niunaijun.blackbox.utils.compat.BuildCompat; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class ProxyService extends Service { public static final String TAG = "StubService"; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/proxy/record/ProxyActivityRecord.java b/Bcore/src/main/java/top/niunaijun/blackbox/proxy/record/ProxyActivityRecord.java index eb44013..4f324bd 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/proxy/record/ProxyActivityRecord.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/proxy/record/ProxyActivityRecord.java @@ -12,7 +12,7 @@ import top.niunaijun.blackbox.utils.compat.BundleCompat; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class ProxyActivityRecord { public int mUserId; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/proxy/record/ProxyBroadcastRecord.java b/Bcore/src/main/java/top/niunaijun/blackbox/proxy/record/ProxyBroadcastRecord.java index d872cba..c161b81 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/proxy/record/ProxyBroadcastRecord.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/proxy/record/ProxyBroadcastRecord.java @@ -8,7 +8,7 @@ import android.content.Intent; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class ProxyBroadcastRecord { public Intent mIntent; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/proxy/record/ProxyPendingRecord.java b/Bcore/src/main/java/top/niunaijun/blackbox/proxy/record/ProxyPendingRecord.java index 95a7357..32d86a6 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/proxy/record/ProxyPendingRecord.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/proxy/record/ProxyPendingRecord.java @@ -8,7 +8,7 @@ import android.content.Intent; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class ProxyPendingRecord { public int mUserId; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/proxy/record/ProxyServiceRecord.java b/Bcore/src/main/java/top/niunaijun/blackbox/proxy/record/ProxyServiceRecord.java index 2061f1e..313b324 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/proxy/record/ProxyServiceRecord.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/proxy/record/ProxyServiceRecord.java @@ -12,7 +12,7 @@ import top.niunaijun.blackbox.utils.compat.BundleCompat; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class ProxyServiceRecord { public Intent mServiceIntent; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/utils/AbiUtils.java b/Bcore/src/main/java/top/niunaijun/blackbox/utils/AbiUtils.java index cc539b6..dd12fb7 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/utils/AbiUtils.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/utils/AbiUtils.java @@ -17,7 +17,7 @@ import top.niunaijun.blackbox.BlackBoxCore; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class AbiUtils { private final Set mLibs = new HashSet<>(); diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/utils/CloseUtils.java b/Bcore/src/main/java/top/niunaijun/blackbox/utils/CloseUtils.java index 34cdca4..61b574a 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/utils/CloseUtils.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/utils/CloseUtils.java @@ -9,7 +9,7 @@ import java.io.IOException; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class CloseUtils { public static void close(Closeable... closeables) { diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/utils/NativeUtils.java b/Bcore/src/main/java/top/niunaijun/blackbox/utils/NativeUtils.java index 256ba02..20b752b 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/utils/NativeUtils.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/utils/NativeUtils.java @@ -21,7 +21,7 @@ import java.util.zip.ZipFile; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class NativeUtils { public static final String TAG = "VirtualM"; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/utils/compat/ActivityCompat.java b/Bcore/src/main/java/top/niunaijun/blackbox/utils/compat/ActivityCompat.java index 14e53a2..7bb0411 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/utils/compat/ActivityCompat.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/utils/compat/ActivityCompat.java @@ -26,7 +26,7 @@ import top.niunaijun.blackbox.utils.DrawableUtils; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class ActivityCompat { diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/utils/compat/ContextCompat.java b/Bcore/src/main/java/top/niunaijun/blackbox/utils/compat/ContextCompat.java index 5f28016..a1ae39b 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/utils/compat/ContextCompat.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/utils/compat/ContextCompat.java @@ -20,7 +20,7 @@ import top.niunaijun.blackbox.utils.Slog; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class ContextCompat { public static final String TAG = "ContextCompat"; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/utils/compat/DexFileCompat.java b/Bcore/src/main/java/top/niunaijun/blackbox/utils/compat/DexFileCompat.java index df90173..aa89cbc 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/utils/compat/DexFileCompat.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/utils/compat/DexFileCompat.java @@ -12,7 +12,7 @@ import top.niunaijun.blackbox.utils.Reflector; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class DexFileCompat { diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/utils/compat/StartActivityCompat.java b/Bcore/src/main/java/top/niunaijun/blackbox/utils/compat/StartActivityCompat.java index 9bdf71c..5fc2c6e 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/utils/compat/StartActivityCompat.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/utils/compat/StartActivityCompat.java @@ -10,7 +10,7 @@ import android.os.IBinder; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class StartActivityCompat { private static int index = 0; diff --git a/Bcore/src/main/java/top/niunaijun/blackbox/utils/compat/XposedParserCompat.java b/Bcore/src/main/java/top/niunaijun/blackbox/utils/compat/XposedParserCompat.java index b47b57b..6fa5db0 100644 --- a/Bcore/src/main/java/top/niunaijun/blackbox/utils/compat/XposedParserCompat.java +++ b/Bcore/src/main/java/top/niunaijun/blackbox/utils/compat/XposedParserCompat.java @@ -21,7 +21,7 @@ import top.niunaijun.blackbox.utils.CloseUtils; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class XposedParserCompat { diff --git a/Bcore/src/main/java/top/niunaijun/jnihook/MethodUtils.java b/Bcore/src/main/java/top/niunaijun/jnihook/MethodUtils.java index b54f99e..c22dd48 100644 --- a/Bcore/src/main/java/top/niunaijun/jnihook/MethodUtils.java +++ b/Bcore/src/main/java/top/niunaijun/jnihook/MethodUtils.java @@ -6,7 +6,7 @@ package top.niunaijun.jnihook; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ import androidx.annotation.Keep; diff --git a/Bcore/src/main/java/top/niunaijun/jnihook/ReflectCore.java b/Bcore/src/main/java/top/niunaijun/jnihook/ReflectCore.java index 8e258d7..2285e77 100644 --- a/Bcore/src/main/java/top/niunaijun/jnihook/ReflectCore.java +++ b/Bcore/src/main/java/top/niunaijun/jnihook/ReflectCore.java @@ -11,7 +11,7 @@ import top.niunaijun.jnihook.jni.JniHook; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public class ReflectCore { diff --git a/Bcore/src/main/java/top/niunaijun/jnihook/jni/JniHook.java b/Bcore/src/main/java/top/niunaijun/jnihook/jni/JniHook.java index 642b891..6de3d2d 100644 --- a/Bcore/src/main/java/top/niunaijun/jnihook/jni/JniHook.java +++ b/Bcore/src/main/java/top/niunaijun/jnihook/jni/JniHook.java @@ -9,7 +9,7 @@ import java.lang.reflect.Method; * (`・ω・∥ * 丶 つ0 * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * */ public final class JniHook { public static final int NATIVE_OFFSET = 0; diff --git a/app/src/main/java/top/niunaijun/blackboxa/app/AppManager.kt b/app/src/main/java/top/niunaijun/blackboxa/app/AppManager.kt index 175ac4e..2c85d7c 100644 --- a/app/src/main/java/top/niunaijun/blackboxa/app/AppManager.kt +++ b/app/src/main/java/top/niunaijun/blackboxa/app/AppManager.kt @@ -7,15 +7,11 @@ import top.niunaijun.blackboxa.view.main.BlackBoxLoader /** * updated by alex5402 on 4/9/21. - * * ∧_∧ - * (`・ω・∥ - * 丶 つ0 - * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * * ∧_∧ (`・ω・∥ 丶 つ0 しーJ */ object AppManager { private const val TAG = "AppManager" - + @JvmStatic val mBlackBoxLoader by lazy { try { diff --git a/app/src/main/java/top/niunaijun/blackboxa/app/rocker/RockerManager.kt b/app/src/main/java/top/niunaijun/blackboxa/app/rocker/RockerManager.kt index c461c63..4453601 100644 --- a/app/src/main/java/top/niunaijun/blackboxa/app/rocker/RockerManager.kt +++ b/app/src/main/java/top/niunaijun/blackboxa/app/rocker/RockerManager.kt @@ -9,55 +9,56 @@ import android.widget.FrameLayout import android.widget.RelativeLayout import com.imuxuan.floatingview.FloatingMagnetView import com.imuxuan.floatingview.FloatingView +import kotlin.math.cos +import kotlin.math.sin import top.niunaijun.blackbox.entity.location.BLocation import top.niunaijun.blackbox.fake.frameworks.BLocationManager import top.niunaijun.blackboxa.app.App import top.niunaijun.blackboxa.widget.EnFloatView -import kotlin.math.cos -import kotlin.math.sin /** * RockerManager - Advanced GPS Location Spoofing with Floating Joystick Control - * + * * @Description: Provides a floating joystick/rocker control for real-time GPS location manipulation + * ``` * in virtual apps. Allows users to move their fake GPS location by dragging a joystick. - * - * @Features: + * + * @Features + * ``` + * : * - Floating joystick that appears on screen * - Real-time GPS coordinate updates * - Precise distance and angle control * - App-specific location spoofing * - Automatic activity lifecycle management - * + * * @Usage: * 1. RockerManager automatically initializes when virtual apps start * 2. A floating joystick appears on the left side of the screen * 3. Drag the joystick to change GPS location: + * ``` * - Distance: How far to move (in meters) * - Angle: Direction to move (0-360 degrees) + * ``` * 4. Location updates happen in real-time as you move the joystick - * + * * @Permissions Required: * - SYSTEM_ALERT_WINDOW: To show floating view over other apps * - ACCESS_FINE_LOCATION: To access GPS location services * - ACCESS_COARSE_LOCATION: For approximate location access - * + * * @Requirements: * - Fake location must be enabled in BlackBox * - User must grant overlay and location permissions * - Virtual app must be running - * + * * @Author: kotlinMiku * @CreateDate: 2022/3/19 19:37 * @LastModified: 2024 - Enhanced with better error handling and permissions */ /** * updated by alex5402 on 4/9/21. - * * ∧_∧ - * (`・ω・∥ - * 丶 つ0 - * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * * ∧_∧ (`・ω・∥ 丶 つ0 しーJ */ object RockerManager { @@ -65,8 +66,8 @@ object RockerManager { private var isInitialized = false // Earth radius constants for coordinate calculations - private const val Ea = 6378137.0 // Equator radius (meters) - private const val Eb = 6356725.0 // Polar radius (meters) + private const val Ea = 6378137.0 // Equator radius (meters) + private const val Eb = 6356725.0 // Polar radius (meters) fun init(application: Application?, userId: Int) { try { @@ -93,7 +94,7 @@ object RockerManager { } Log.d(TAG, "Initializing RockerManager for userId: $userId") - + val enFloatView = initFloatView() if (enFloatView is EnFloatView) { enFloatView.setListener { angle: Float, distance: Float -> @@ -106,31 +107,47 @@ object RockerManager { } // Register activity lifecycle callbacks for floating view management - application.registerActivityLifecycleCallbacks(object : BaseActivityLifecycleCallback { - override fun onActivityStarted(activity: Activity) { - super.onActivityStarted(activity) - try { - FloatingView.get().attach(activity) - Log.d(TAG, "Floating view attached to activity: ${activity.javaClass.simpleName}") - } catch (e: Exception) { - Log.e(TAG, "Error attaching floating view to activity: ${e.message}") - } - } + application.registerActivityLifecycleCallbacks( + object : BaseActivityLifecycleCallback { + override fun onActivityStarted(activity: Activity) { + super.onActivityStarted(activity) + try { + FloatingView.get().attach(activity) + Log.d( + TAG, + "Floating view attached to activity: ${activity.javaClass.simpleName}" + ) + } catch (e: Exception) { + Log.e( + TAG, + "Error attaching floating view to activity: ${e.message}" + ) + } + } - override fun onActivityStopped(activity: Activity) { - super.onActivityStopped(activity) - try { - FloatingView.get().detach(activity) - Log.d(TAG, "Floating view detached from activity: ${activity.javaClass.simpleName}") - } catch (e: Exception) { - Log.e(TAG, "Error detaching floating view from activity: ${e.message}") + override fun onActivityStopped(activity: Activity) { + super.onActivityStopped(activity) + try { + FloatingView.get().detach(activity) + Log.d( + TAG, + "Floating view detached from activity: ${activity.javaClass.simpleName}" + ) + } catch (e: Exception) { + Log.e( + TAG, + "Error detaching floating view from activity: ${e.message}" + ) + } + } } - } - }) + ) isInitialized = true - Log.d(TAG, "RockerManager initialized successfully - Floating GPS joystick is now active!") - + Log.d( + TAG, + "RockerManager initialized successfully - Floating GPS joystick is now active!" + ) } catch (e: Exception) { Log.e(TAG, "Error initializing RockerManager: ${e.message}") Log.e(TAG, "Stack trace: ", e) @@ -139,10 +156,11 @@ object RockerManager { private fun initFloatView(): FloatingMagnetView? { return try { - val params = FrameLayout.LayoutParams( - RelativeLayout.LayoutParams.WRAP_CONTENT, - RelativeLayout.LayoutParams.WRAP_CONTENT - ) + val params = + FrameLayout.LayoutParams( + RelativeLayout.LayoutParams.WRAP_CONTENT, + RelativeLayout.LayoutParams.WRAP_CONTENT + ) params.gravity = Gravity.START or Gravity.CENTER val view = EnFloatView(App.getContext()) @@ -166,7 +184,10 @@ object RockerManager { return } - Log.d(TAG, "Changing location - Distance: ${distance}m, Angle: ${angle}°, Current: ${location.latitude}, ${location.longitude}") + Log.d( + TAG, + "Changing location - Distance: ${distance}m, Angle: ${angle}°, Current: ${location.latitude}, ${location.longitude}" + ) // Calculate new coordinates based on joystick input val dx = distance * sin(angle * Math.PI / 180.0) @@ -178,41 +199,41 @@ object RockerManager { val newLng = (dx / ed + location.longitude * Math.PI / 180.0) * 180.0 / Math.PI val newLat = (dy / ec + location.latitude * Math.PI / 180.0) * 180.0 / Math.PI - + val newLocation = BLocation(newLat, newLng) // Update the location BLocationManager.get().setLocation(userId, packageName, newLocation) - + Log.d(TAG, "Location updated - New: ${newLat}, ${newLng}") - } catch (e: Exception) { Log.e(TAG, "Error changing location: ${e.message}") Log.e(TAG, "Stack trace: ", e) } } - /** - * Check if RockerManager is currently initialized and active - */ + /** Check if RockerManager is currently initialized and active */ fun isActive(): Boolean { return isInitialized } - /** - * Check if required permissions are granted for RockerManager to work - */ + /** Check if required permissions are granted for RockerManager to work */ fun checkPermissions(context: Context): Boolean { return try { // Check if overlay permission is granted (required for floating view) val hasOverlayPermission = android.provider.Settings.canDrawOverlays(context) if (!hasOverlayPermission) { - Log.w(TAG, "Overlay permission not granted - RockerManager cannot show floating view") + Log.w( + TAG, + "Overlay permission not granted - RockerManager cannot show floating view" + ) return false } // Check if location permissions are granted - val hasLocationPermission = context.checkSelfPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) == android.content.pm.PackageManager.PERMISSION_GRANTED + val hasLocationPermission = + context.checkSelfPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) == + android.content.pm.PackageManager.PERMISSION_GRANTED if (!hasLocationPermission) { Log.w(TAG, "Location permission not granted - RockerManager cannot access location") return false @@ -226,20 +247,16 @@ object RockerManager { } } - /** - * Get a list of required permissions for RockerManager - */ + /** Get a list of required permissions for RockerManager */ fun getRequiredPermissions(): List { return listOf( - android.Manifest.permission.SYSTEM_ALERT_WINDOW, - android.Manifest.permission.ACCESS_FINE_LOCATION, - android.Manifest.permission.ACCESS_COARSE_LOCATION + android.Manifest.permission.SYSTEM_ALERT_WINDOW, + android.Manifest.permission.ACCESS_FINE_LOCATION, + android.Manifest.permission.ACCESS_COARSE_LOCATION ) } - /** - * Clean up resources (useful for testing or when disabling the feature) - */ + /** Clean up resources (useful for testing or when disabling the feature) */ fun cleanup() { try { isInitialized = false @@ -248,4 +265,4 @@ object RockerManager { Log.e(TAG, "Error during cleanup: ${e.message}") } } -} \ No newline at end of file +} diff --git a/app/src/main/java/top/niunaijun/blackboxa/biz/cache/AppSharedPreferenceDelegate.kt b/app/src/main/java/top/niunaijun/blackboxa/biz/cache/AppSharedPreferenceDelegate.kt index f97b28e..0ef7878 100644 --- a/app/src/main/java/top/niunaijun/blackboxa/biz/cache/AppSharedPreferenceDelegate.kt +++ b/app/src/main/java/top/niunaijun/blackboxa/biz/cache/AppSharedPreferenceDelegate.kt @@ -8,20 +8,21 @@ import kotlin.reflect.KProperty /** * updated by alex5402 on 4/9/21. - * * ∧_∧ - * (`・ω・∥ - * 丶 つ0 - * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * * ∧_∧ (`・ω・∥ 丶 つ0 しーJ */ -open class AppSharedPreferenceDelegate(context: Context, private val default: Data, spName: String? = null) : ReadWriteProperty { +open class AppSharedPreferenceDelegate( + context: Context, + private val default: Data, + spName: String? = null +) : ReadWriteProperty { private val mSharedPreferences by lazy { - val tmpCacheName = if (TextUtils.isEmpty(spName)) { - AppSharedPreferenceDelegate::class.java.simpleName - } else { - spName - } + val tmpCacheName = + if (TextUtils.isEmpty(spName)) { + AppSharedPreferenceDelegate::class.java.simpleName + } else { + spName + } return@lazy context.getSharedPreferences(tmpCacheName, Context.MODE_PRIVATE) } @@ -35,14 +36,18 @@ open class AppSharedPreferenceDelegate(context: Context, private val defau protected fun findData(key: String, default: Data): Data { with(mSharedPreferences) { - val result: Any = when (default) { - is Int -> getInt(key, default) - is Long -> getLong(key, default) - is Float -> getFloat(key, default) - is String -> getString(key, default)!! - is Boolean -> getBoolean(key, default) - else -> throw IllegalArgumentException("This type $default can not be saved into sharedPreferences") - } + val result: Any = + when (default) { + is Int -> getInt(key, default) + is Long -> getLong(key, default) + is Float -> getFloat(key, default) + is String -> getString(key, default)!! + is Boolean -> getBoolean(key, default) + else -> + throw IllegalArgumentException( + "This type $default can not be saved into sharedPreferences" + ) + } return result as? Data ?: default } } @@ -58,9 +63,12 @@ open class AppSharedPreferenceDelegate(context: Context, private val defau is Float -> putFloat(key, value) is String -> putString(key, value) is Boolean -> putBoolean(key, value) - else -> throw IllegalArgumentException("This type $default can not be saved into Preferences") + else -> + throw IllegalArgumentException( + "This type $default can not be saved into Preferences" + ) } } } } -} \ No newline at end of file +} diff --git a/app/src/main/java/top/niunaijun/blackboxa/util/MemoryManager.kt b/app/src/main/java/top/niunaijun/blackboxa/util/MemoryManager.kt index c228cfb..c4875cc 100644 --- a/app/src/main/java/top/niunaijun/blackboxa/util/MemoryManager.kt +++ b/app/src/main/java/top/niunaijun/blackboxa/util/MemoryManager.kt @@ -1,85 +1,72 @@ package top.niunaijun.blackboxa.util -import android.app.ActivityManager -import android.content.Context import android.util.Log import java.lang.Runtime -/** - * Memory management utility to prevent crashes during memory-intensive operations - */ +/** Memory management utility to prevent crashes during memory-intensive operations */ /** * created by alex5402 on 4/9/21. - * * ∧_∧ - * (`・ω・∥ - * 丶 つ0 - * しーJ - * TFNQw5HgWUS33Ke1eNmSFTwoQySGU7XNsK (USDT TRC20) + * * ∧_∧ (`・ω・∥ 丶 つ0 しーJ */ object MemoryManager { - + private const val TAG = "MemoryManager" private const val MEMORY_THRESHOLD = 0.8 // 80% memory usage threshold private const val CRITICAL_MEMORY_THRESHOLD = 0.9 // 90% memory usage threshold - - /** - * Check if memory usage is within safe limits - */ + + /** Check if memory usage is within safe limits */ fun isMemorySafe(): Boolean { return try { val runtime = Runtime.getRuntime() val usedMemory = runtime.totalMemory() - runtime.freeMemory() val maxMemory = runtime.maxMemory() val memoryUsage = usedMemory.toDouble() / maxMemory.toDouble() - + memoryUsage < MEMORY_THRESHOLD } catch (e: Exception) { Log.e(TAG, "Error checking memory: ${e.message}") true // Assume safe if we can't check } } - - /** - * Check if memory usage is critical - */ + + /** Check if memory usage is critical */ fun isMemoryCritical(): Boolean { return try { val runtime = Runtime.getRuntime() val usedMemory = runtime.totalMemory() - runtime.freeMemory() val maxMemory = runtime.maxMemory() val memoryUsage = usedMemory.toDouble() / maxMemory.toDouble() - + memoryUsage > CRITICAL_MEMORY_THRESHOLD } catch (e: Exception) { Log.e(TAG, "Error checking critical memory: ${e.message}") false // Assume not critical if we can't check } } - - /** - * Get current memory usage percentage - */ + + /** Get current memory usage percentage */ fun getMemoryUsagePercentage(): Int { return try { val runtime = Runtime.getRuntime() val usedMemory = runtime.totalMemory() - runtime.freeMemory() val maxMemory = runtime.maxMemory() val memoryUsage = usedMemory.toDouble() / maxMemory.toDouble() - + (memoryUsage * 100).toInt() } catch (e: Exception) { Log.e(TAG, "Error getting memory usage: ${e.message}") 0 } } - - /** - * Force garbage collection if memory usage is high - */ + + /** Force garbage collection if memory usage is high */ fun forceGarbageCollectionIfNeeded(): Boolean { return try { if (isMemoryCritical()) { - Log.w(TAG, "Memory usage critical (${getMemoryUsagePercentage()}%), forcing garbage collection") + Log.w( + TAG, + "Memory usage critical (${getMemoryUsagePercentage()}%), forcing garbage collection" + ) System.gc() Thread.sleep(100) // Give GC time to work true @@ -91,20 +78,18 @@ object MemoryManager { false } } - - /** - * Optimize memory for RecyclerView operations - */ + + /** Optimize memory for RecyclerView operations */ fun optimizeMemoryForRecyclerView() { try { val memoryUsage = getMemoryUsagePercentage() - + if (memoryUsage > 70) { Log.d(TAG, "Memory usage high (${memoryUsage}%), optimizing for RecyclerView") - + // Force garbage collection System.gc() - + // Clear any caches if possible try { val runtime = Runtime.getRuntime() @@ -117,10 +102,8 @@ object MemoryManager { Log.e(TAG, "Error optimizing memory: ${e.message}") } } - - /** - * Check if we should skip icon loading to save memory - */ + + /** Check if we should skip icon loading to save memory */ fun shouldSkipIconLoading(): Boolean { return try { val memoryUsage = getMemoryUsagePercentage() @@ -130,10 +113,8 @@ object MemoryManager { false } } - - /** - * Get memory info for debugging - */ + + /** Get memory info for debugging */ fun getMemoryInfo(): String { return try { val runtime = Runtime.getRuntime() @@ -141,7 +122,7 @@ object MemoryManager { val freeMemory = runtime.freeMemory() val usedMemory = totalMemory - freeMemory val maxMemory = runtime.maxMemory() - + "Memory: ${usedMemory / 1024 / 1024}MB used / ${maxMemory / 1024 / 1024}MB max (${getMemoryUsagePercentage()}%)" } catch (e: Exception) { "Memory: Unknown (${e.message})" diff --git a/build.gradle b/build.gradle index acffbae..873484b 100644 --- a/build.gradle +++ b/build.gradle @@ -7,10 +7,11 @@ alias(libs.plugins.android.application) apply false ext { compileSdkVersion = 35 - targetSdkVersion = 34 + targetSdkVersion = 28 // need for support more apps and gg don't change this +// targetSdkVersion = 35 minSdk = 21 versionCode = 1 - versionName = "3.0.9-beta2" + versionName = "3.0.10-beta2" xVersion = '1.1.0' hiddenApiBypass = '4.3' } \ No newline at end of file