From 8eb97b6485c22ff6da9568db5a2629e8faa99cb2 Mon Sep 17 00:00:00 2001 From: nxibjz Date: Tue, 28 Jul 2026 21:50:00 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=BC=E5=AE=B9=E7=83=AD=E9=87=8D=E8=BD=BD?= =?UTF-8?q?=E7=9A=84=E6=8F=90=E6=97=A9Hook=E6=97=B6=E6=9C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 + .../hyperceiler/libhook/app/AICR.java | 2 +- .../hyperceiler/libhook/app/AiAsst.java | 2 +- .../hyperceiler/libhook/app/Analytics.java | 2 +- .../sevtinge/hyperceiler/libhook/app/Aod.java | 2 +- .../hyperceiler/libhook/app/Backup.java | 2 +- .../hyperceiler/libhook/app/Barrage.java | 2 +- .../hyperceiler/libhook/app/Browser.java | 2 +- .../hyperceiler/libhook/app/Calendar.java | 2 +- .../hyperceiler/libhook/app/Camera.java | 2 +- .../hyperceiler/libhook/app/CloudService.java | 2 +- .../hyperceiler/libhook/app/Community.java | 2 +- .../hyperceiler/libhook/app/Contacts.java | 2 +- .../libhook/app/ContentExtension.java | 2 +- .../hyperceiler/libhook/app/Creation.java | 2 +- .../hyperceiler/libhook/app/Downloads.java | 2 +- .../hyperceiler/libhook/app/DownloadsUI.java | 2 +- .../libhook/app/ExternalStorage.java | 2 +- .../hyperceiler/libhook/app/FileExplorer.java | 2 +- .../hyperceiler/libhook/app/Gallery.java | 2 +- .../hyperceiler/libhook/app/GetApps.java | 2 +- .../libhook/app/GuardProvider.java | 2 +- .../hyperceiler/libhook/app/Health.java | 2 +- .../libhook/app/Home/os2/HomePadOld.java | 2 +- .../libhook/app/Home/os2/HomePhoneOld.java | 2 +- .../libhook/app/Home/os3/HomePad.java | 2 +- .../libhook/app/Home/os3/HomePhone.java | 2 +- .../hyperceiler/libhook/app/HtmlViewer.java | 2 +- .../hyperceiler/libhook/app/Huanji.java | 2 +- .../hyperceiler/libhook/app/InCallUi.java | 2 +- .../hyperceiler/libhook/app/Joyose.java | 2 +- .../sevtinge/hyperceiler/libhook/app/Lbe.java | 2 +- .../sevtinge/hyperceiler/libhook/app/Lpa.java | 2 +- .../hyperceiler/libhook/app/MediaEditor.java | 2 +- .../hyperceiler/libhook/app/MiLink.java | 2 +- .../hyperceiler/libhook/app/MiSettings.java | 2 +- .../hyperceiler/libhook/app/MiShare.java | 2 +- .../hyperceiler/libhook/app/MiSound.java | 2 +- .../hyperceiler/libhook/app/MiWallpaper.java | 2 +- .../hyperceiler/libhook/app/Mirror.java | 2 +- .../sevtinge/hyperceiler/libhook/app/Mms.java | 2 +- .../sevtinge/hyperceiler/libhook/app/Mtb.java | 2 +- .../sevtinge/hyperceiler/libhook/app/Nfc.java | 2 +- .../hyperceiler/libhook/app/Notes.java | 2 +- .../libhook/app/Others/VariousSystemApps.java | 2 +- .../libhook/app/Others/VariousThirdApps.java | 2 +- .../libhook/app/PackageInstaller.java | 3 +- .../libhook/app/PersonalAssistant.java | 2 +- .../hyperceiler/libhook/app/Phone.java | 2 +- .../hyperceiler/libhook/app/PhotoPicker.java | 2 +- .../hyperceiler/libhook/app/Phrase.java | 2 +- .../hyperceiler/libhook/app/PowerKeeper.java | 2 +- .../libhook/app/RemoteController.java | 2 +- .../hyperceiler/libhook/app/Scanner.java | 2 +- .../libhook/app/ScreenRecorder.java | 2 +- .../hyperceiler/libhook/app/ScreenShot.java | 2 +- .../hyperceiler/libhook/app/SecurityAdd.java | 2 +- .../libhook/app/SecurityCenter.java | 2 +- .../hyperceiler/libhook/app/SimActivate.java | 2 +- .../libhook/app/SoundRecorder.java | 2 +- .../app/SystemFramework/SystemFrameworkB.java | 2 +- .../app/SystemFramework/SystemFrameworkV.java | 2 +- .../app/SystemSettings/SystemSettingsB.java | 2 +- .../app/SystemSettings/SystemSettingsV.java | 2 +- .../libhook/app/SystemUI/SystemUIB.java | 6 +- .../libhook/app/SystemUI/SystemUIPlugin.java | 2 +- .../libhook/app/SystemUI/SystemUIV.java | 6 +- .../hyperceiler/libhook/app/Telecom.java | 2 +- .../hyperceiler/libhook/app/ThemeManager.java | 2 +- .../hyperceiler/libhook/app/TrustService.java | 2 +- .../hyperceiler/libhook/app/TsmClient.java | 2 +- .../hyperceiler/libhook/app/Updater.java | 2 +- .../hyperceiler/libhook/app/VoiceAssist.java | 2 +- .../hyperceiler/libhook/app/VoiceTrigger.java | 2 +- .../hyperceiler/libhook/app/Wallet.java | 2 +- .../hyperceiler/libhook/app/Weather.java | 2 +- .../hyperceiler/libhook/app/Xmsf.java | 2 +- .../hyperceiler/libhook/base/BaseLoad.java | 62 +++++- .../libhook/base/XposedInitEntry.java | 204 ++++++++++++------ .../rules/home/other/ShortcutItemCount.kt | 1 + .../other/DisableMiuiMultiWinSwitch.kt | 18 +- .../utils/hookapi/tool/ResourcesTool.java | 28 ++- 82 files changed, 304 insertions(+), 172 deletions(-) diff --git a/.gitignore b/.gitignore index 0e32912782..20557eb6e6 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,5 @@ local.properties signing.properties /.kotlin /library/hook + +.artifacts/ diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/AICR.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/AICR.java index 2651bf2a75..7fefd7fedf 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/AICR.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/AICR.java @@ -27,7 +27,7 @@ public class AICR extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(ChangeBrowserForAIEngine.INSTANCE, PrefsBridge.getBoolean("aicr_modify_browser_copy")); } } diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/AiAsst.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/AiAsst.java index d8a2fc9fdd..9821bf87d6 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/AiAsst.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/AiAsst.java @@ -11,7 +11,7 @@ public class AiAsst extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(NewAiCaptions.INSTANCE, PrefsBridge.getBoolean("aiasst_ai_captions")); initHook(UnlockSplitTranslation.INSTANCE, PrefsBridge.getBoolean("aiasst_unlock_split_screen_translation")); } diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Analytics.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Analytics.java index 2fec887fed..5c3885ae9d 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Analytics.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Analytics.java @@ -29,7 +29,7 @@ public class Analytics extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(new FuckMiuiUpload(), PrefsBridge.getBoolean("analytics_fuck_guard")); } } diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Aod.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Aod.java index 7376def2ca..32519939f2 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Aod.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Aod.java @@ -31,7 +31,7 @@ public class Aod extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(UnlockShortCuts.INSTANCE, isMoreSmallVersion(200, 2f)); // initHook(new UnlockAlwaysOnDisplay(), PrefsBridge.getBoolean("aod_unlock_always_on_display_hyper")); initHook(new UnlockAodAon(), PrefsBridge.getBoolean("aod_unlock_aon")); diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Backup.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Backup.java index cdf032ee00..11bbe5ef1c 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Backup.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Backup.java @@ -28,7 +28,7 @@ public class Backup extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(new UnlockBrokenScreenBackup(), PrefsBridge.getBoolean("backup_unlock_broken_screen_backup")); initHook(new AllowBackupAllApps(), PrefsBridge.getBoolean("backup_allow_all_apps")); } diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Barrage.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Barrage.java index 85cdf1375c..0fd74b1608 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Barrage.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Barrage.java @@ -30,7 +30,7 @@ public class Barrage extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(AnyBarrage.INSTANCE, PrefsBridge.getBoolean("barrage_any_barrage")); initHook(BarrageNotTouchable.INSTANCE, PrefsBridge.getBoolean("barrage_not_touchable")); initHook(GlobalBarrage.INSTANCE, PrefsBridge.getBoolean("barrage_global_enable")); diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Browser.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Browser.java index f26d61eb19..44d7c31725 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Browser.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Browser.java @@ -28,7 +28,7 @@ @HookBase(targetPackage = "com.android.browser") public class Browser extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(new DebugMode(), PrefsBridge.getBoolean("browser_debug_mode")); initHook(new DisableReadFiles(), PrefsBridge.getBoolean("browser_disable_blacklist")); initHook(new EnableDebugEnvironment(), PrefsBridge.getBoolean("browser_enable_debug_environment")); diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Calendar.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Calendar.java index 391c73130e..4856f124d8 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Calendar.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Calendar.java @@ -27,7 +27,7 @@ public class Calendar extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(new UnlockSubscription(), PrefsBridge.getBoolean("calendar_unlock_subscription")); } } diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Camera.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Camera.java index cb5c4631bd..60de6ca9a9 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Camera.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Camera.java @@ -37,7 +37,7 @@ public class Camera extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { // 拍照 initHook(new CustomWatermark(), PrefsBridge.getBoolean("camera_custom_watermark")); initHook(new BlackLeica(), PrefsBridge.getBoolean("camera_black_leica")); diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/CloudService.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/CloudService.java index 5b12537d9c..079c45188f 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/CloudService.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/CloudService.java @@ -26,7 +26,7 @@ @HookBase(targetPackage = "com.miui.cloudservice") public class CloudService extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(new CloudList(), PrefsBridge.getBoolean("micloud_service_list")); } } diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Community.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Community.java index d9ed82adab..ddfe613d77 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Community.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Community.java @@ -30,7 +30,7 @@ public class Community extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(new DeviceModify(), PrefsBridge.getBoolean("community_device_modify")); initHook(new FuckDetection(), PrefsBridge.getBoolean("community_fuck_detection")); } diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Contacts.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Contacts.java index 61176eeb5e..d7acfb5e92 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Contacts.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Contacts.java @@ -29,7 +29,7 @@ public class Contacts extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(new DisableNetworkAssistantOfflineInfoManager(), PrefsBridge.getBoolean("contacts_disable_offline_info_manager")); initHook(new BusinessHallAdBlock(), PrefsBridge.getBoolean("contacts_business_hall_ad_block")); } diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/ContentExtension.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/ContentExtension.java index 32350aa106..52f37fe1c6 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/ContentExtension.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/ContentExtension.java @@ -33,7 +33,7 @@ public class ContentExtension extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(new UseThirdPartyBrowser(), PrefsBridge.getBoolean("content_extension_browser")); initHook(new DoublePress(), PrefsBridge.getBoolean("content_extension_double_press")); initHook(new Taplus(), PrefsBridge.getBoolean("security_center_taplus")); diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Creation.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Creation.java index f670fae8a6..36f4210164 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Creation.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Creation.java @@ -27,7 +27,7 @@ public class Creation extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(UnlockCreation.INSTANCE, PrefsBridge.getBoolean("creation_unlock_enable")); } } diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Downloads.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Downloads.java index cccbd1e860..38a7398f93 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Downloads.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Downloads.java @@ -27,7 +27,7 @@ public class Downloads extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(RemoveXlDownload.INSTANCE, PrefsBridge.getBoolean("various_fuck_xlDownload")); } } diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/DownloadsUI.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/DownloadsUI.java index ba4ff3a90a..b24741b462 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/DownloadsUI.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/DownloadsUI.java @@ -26,7 +26,7 @@ @HookBase(targetPackage = "com.android.providers.downloads.ui") public class DownloadsUI extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(new AlwaysShowDownloadLink(), PrefsBridge.getBoolean("downloads_ui_always_show_link")); } } diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/ExternalStorage.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/ExternalStorage.java index 6bd9471516..b9c93989cf 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/ExternalStorage.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/ExternalStorage.java @@ -28,7 +28,7 @@ public class ExternalStorage extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(new DisableFolderCantUse(), PrefsBridge.getBoolean("various_disable_folder_cantuse")); } } diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/FileExplorer.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/FileExplorer.java index 782a00b5ec..ecd0e97697 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/FileExplorer.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/FileExplorer.java @@ -28,7 +28,7 @@ public class FileExplorer extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(new UnlockFileParse(), PrefsBridge.getBoolean("file_explorer_unlock_file_parse")); initHook(SelectName.INSTANCE, PrefsBridge.getBoolean("file_explorer_can_selectable") || PrefsBridge.getBoolean("file_explorer_is_single_line")); } diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Gallery.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Gallery.java index dd5356a58a..54d3e3669a 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Gallery.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Gallery.java @@ -38,7 +38,7 @@ public class Gallery extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(new LongerTrashbinTime(), PrefsBridge.getBoolean("gallery_longer_trashbin_time")); initHook(new UnPrivacyWatermark(), PrefsBridge.getBoolean("gallery_enable_un_privacy_watermark")); initHook(new EnableHdrEnhance(), PrefsBridge.getBoolean("gallery_enable_hdr_enhanced")); diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/GetApps.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/GetApps.java index 373f88c0ee..32b6f4192d 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/GetApps.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/GetApps.java @@ -31,7 +31,7 @@ public class GetApps extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(new BypassRiskCheck(), PrefsBridge.getBoolean("market_bypass_risk_check")); initHook(new DisableAds(), PrefsBridge.getBoolean("market_disable_ads")); initHook(new DeviceModify(), PrefsBridge.getStringAsInt("market_device_modify_new", 0) != 0); diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/GuardProvider.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/GuardProvider.java index 928df1b0ee..48a8d2978b 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/GuardProvider.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/GuardProvider.java @@ -27,7 +27,7 @@ @HookBase(targetPackage = "com.miui.guardprovider") public class GuardProvider extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(new DisableRootedCheck(), PrefsBridge.getBoolean("guard_provider_disable_root_check")); initHook(new DisableUploadAppListNew(), PrefsBridge.getBoolean("disable_upload_applist")); } diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Health.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Health.java index 5d4363db42..f835b58a8b 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Health.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Health.java @@ -28,7 +28,7 @@ @HookBase(targetPackage = "com.mi.health") public class Health extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(new DisableSplashAd(), PrefsBridge.getBoolean("health_disable_splash_ad")); initHook(UnlockFoucsAuth.INSTANCE, PrefsBridge.getBoolean("health_unlock_foucs_app_sign_white_list")); } diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Home/os2/HomePadOld.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Home/os2/HomePadOld.java index 4afc14b7c2..2cd898e4d3 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Home/os2/HomePadOld.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Home/os2/HomePadOld.java @@ -131,7 +131,7 @@ public class HomePadOld extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { boolean gesturesEnabled = PrefsBridge.getBoolean("home_gesture_enable"); boolean hasCornerGestureAction = PrefsBridge.getInt("home_navigation_assist_left_slide_action", 0) > 0 || PrefsBridge.getInt("home_navigation_assist_right_slide_action", 0) > 0; diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Home/os2/HomePhoneOld.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Home/os2/HomePhoneOld.java index 819164aea3..471d80d50d 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Home/os2/HomePhoneOld.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Home/os2/HomePhoneOld.java @@ -135,7 +135,7 @@ public class HomePhoneOld extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { boolean gesturesEnabled = PrefsBridge.getBoolean("home_gesture_enable"); boolean hasCornerGestureAction = PrefsBridge.getInt("home_navigation_assist_left_slide_action", 0) > 0 || PrefsBridge.getInt("home_navigation_assist_right_slide_action", 0) > 0; diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Home/os3/HomePad.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Home/os3/HomePad.java index 169ca66f91..895de40bb0 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Home/os3/HomePad.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Home/os3/HomePad.java @@ -97,7 +97,7 @@ public class HomePad extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { boolean gesturesEnabled = PrefsBridge.getBoolean("home_gesture_enable"); boolean hasCornerGestureAction = PrefsBridge.getInt("home_navigation_assist_left_slide_action", 0) > 0 || PrefsBridge.getInt("home_navigation_assist_right_slide_action", 0) > 0; diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Home/os3/HomePhone.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Home/os3/HomePhone.java index 7c512aab0b..7299795de7 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Home/os3/HomePhone.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Home/os3/HomePhone.java @@ -99,7 +99,7 @@ public class HomePhone extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { boolean gesturesEnabled = PrefsBridge.getBoolean("home_gesture_enable"); boolean hasCornerGestureAction = PrefsBridge.getInt("home_navigation_assist_left_slide_action", 0) > 0 || PrefsBridge.getInt("home_navigation_assist_right_slide_action", 0) > 0; diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/HtmlViewer.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/HtmlViewer.java index 7faeff1302..1b2430e210 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/HtmlViewer.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/HtmlViewer.java @@ -26,7 +26,7 @@ @HookBase(targetPackage = "com.android.htmlviewer") public class HtmlViewer extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(new DisableUpdateCloudAllData(), PrefsBridge.getBoolean("html_viewer_disable_cloud_control")); } } diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Huanji.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Huanji.java index 4a78bdfa51..21e6dadf56 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Huanji.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Huanji.java @@ -26,7 +26,7 @@ @HookBase(targetPackage = "com.miui.huanji") public class Huanji extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(new AllowMoveAllApps(), PrefsBridge.getBoolean("huanji_allow_all_apps")); } } diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/InCallUi.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/InCallUi.java index b7483780f2..7a6dd73b60 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/InCallUi.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/InCallUi.java @@ -28,7 +28,7 @@ public class InCallUi extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(new HideCrbt(), PrefsBridge.getBoolean("incallui_hide_crbt")); initHook(new AnswerInHeadUp(), PrefsBridge.getBoolean("incallui_answer_in_head_up")); } diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Joyose.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Joyose.java index 1272eecd6c..a1c0cfdf7b 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Joyose.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Joyose.java @@ -27,7 +27,7 @@ @HookBase(targetPackage = "com.xiaomi.joyose") public class Joyose extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(new DisableCloudControl(), PrefsBridge.getBoolean("various_disable_cloud_control")); initHook(new EnableGpuTuner(), PrefsBridge.getBoolean("joyose_enable_gpu_tuner")); } diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Lbe.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Lbe.java index a2eda0f376..cb5928e909 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Lbe.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Lbe.java @@ -30,7 +30,7 @@ public class Lbe extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(new AutoStart(), PrefsBridge.getBoolean("lbe_auto_start")); // paste toast diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Lpa.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Lpa.java index eb00737564..65fbb9c43f 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Lpa.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Lpa.java @@ -29,7 +29,7 @@ @HookBase(targetPackage = "com.miui.euicc") public class Lpa extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(new CustomImei(), !Objects.equals(PrefsBridge.getString("lpa_custom_imei", ""), "")); } } diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/MediaEditor.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/MediaEditor.java index ba212551b4..98af0b4d2f 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/MediaEditor.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/MediaEditor.java @@ -35,7 +35,7 @@ public class MediaEditor extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { // AI initHook(new UnlockAigc(), PrefsBridge.getBoolean("mediaeditor_unlock_aigc")); // 基础 diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/MiLink.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/MiLink.java index 81c0f89e10..759751ee39 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/MiLink.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/MiLink.java @@ -31,7 +31,7 @@ public class MiLink extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(new UnlockMiShare(), PrefsBridge.getBoolean("milink_unlock_mishare")); initHook(UnlockSendApp.INSTANCE, PrefsBridge.getBoolean("milink_unlock_send_app")); initHook(new DisablePcManagerClipboardRegionCheck(), PrefsBridge.getBoolean("milink_disable_pc_clipboard_region_check")); diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/MiSettings.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/MiSettings.java index 0a1ae91a7b..f60e67acea 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/MiSettings.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/MiSettings.java @@ -29,7 +29,7 @@ public class MiSettings extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(CustomRefreshRate.INSTANCE, PrefsBridge.getBoolean("various_custom_refresh_rate")); initHook(ShowMoreFpsList.INSTANCE, PrefsBridge.getBoolean("mi_settings_show_fps")); } diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/MiShare.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/MiShare.java index 7916d6113e..28bf9b93bc 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/MiShare.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/MiShare.java @@ -27,7 +27,7 @@ public class MiShare extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(NoAutoTurnOff.INSTANCE, PrefsBridge.getBoolean("disable_mishare_auto_off")); // 禁用 10 分钟自动关闭 } } diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/MiSound.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/MiSound.java index 2227a8e8d7..f3d5341f00 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/MiSound.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/MiSound.java @@ -29,7 +29,7 @@ public class MiSound extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(new NewAutoSEffSwitch(), PrefsBridge.getBoolean("misound_bluetooth")); initHook(IncreaseSamplingRate.INSTANCE, PrefsBridge.getBoolean("misound_increase_sampling_rate")); } diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/MiWallpaper.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/MiWallpaper.java index 8dfc82176e..9034bb4b74 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/MiWallpaper.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/MiWallpaper.java @@ -27,7 +27,7 @@ public class MiWallpaper extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(new UnlockSuperWallpaper(), PrefsBridge.getBoolean("miwallpaper_unlock_super_wallpaper")); } } diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Mirror.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Mirror.java index 3e1957d855..608e668b5f 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Mirror.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Mirror.java @@ -28,7 +28,7 @@ public class Mirror extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(UnlockSendAppM.INSTANCE, PrefsBridge.getBoolean("milink_unlock_send_app")); } } diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Mms.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Mms.java index c9c5048ff7..94457cf96b 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Mms.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Mms.java @@ -31,7 +31,7 @@ public class Mms extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(new DisableRiskTip(), PrefsBridge.getBoolean("mms_disable_fraud_risk_tip") || PrefsBridge.getBoolean("mms_disable_overseas_risk_tip")); initHook(new DisableAd(), PrefsBridge.getBoolean("mms_disable_ad")); initHook(new ImOldDevice(), PrefsBridge.getBoolean("mms_im_old_device")); diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Mtb.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Mtb.java index 31f4662ad2..e9bf48b114 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Mtb.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Mtb.java @@ -27,7 +27,7 @@ @HookBase(targetPackage = "com.xiaomi.mtb") public class Mtb extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(BypassAuthentication.INSTANCE, PrefsBridge.getBoolean("mtb_auth")); initHook(IsUserBuild.INSTANCE, PrefsBridge.getBoolean("mtb_auth")); } diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Nfc.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Nfc.java index e35b49b599..a254d9d65e 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Nfc.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Nfc.java @@ -28,7 +28,7 @@ public class Nfc extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(new DisableSound(), PrefsBridge.getBoolean("nfc_disable_sound")); initHook(new AllowInformationScreen(), PrefsBridge.getBoolean("nfc_allow_information_screen")); } diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Notes.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Notes.java index b725050ca6..a889cf93a4 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Notes.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Notes.java @@ -28,7 +28,7 @@ public class Notes extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(new DisableAiWatermark(), PrefsBridge.getBoolean("notes_disable_ai_watermark")); initHook(UnlockAI.INSTANCE, PrefsBridge.getStringAsInt("notes_unlock_ai_mode", 0) != 0); } diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Others/VariousSystemApps.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Others/VariousSystemApps.java index c2c49a34ff..e8adce88b5 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Others/VariousSystemApps.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Others/VariousSystemApps.java @@ -36,7 +36,7 @@ public class VariousSystemApps extends BaseLoad { boolean isMiuiApps; @Override - public void onPackageLoaded() { + public void onPackageReady() { mPackageName = getPackageName(); isMiuiApps = mPackageName.startsWith("com.miui") || mPackageName.startsWith("com.xiaomi") || miuiDialogCustomApps.contains(mPackageName); initHook(new DialogCustom(), isMiuiDialogCustom()); diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Others/VariousThirdApps.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Others/VariousThirdApps.java index 2522672423..77cc6761da 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Others/VariousThirdApps.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Others/VariousThirdApps.java @@ -56,7 +56,7 @@ public class VariousThirdApps extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { mPackageName = getPackageName(); boolean isInputMethod = isEnabledInputMethodPackage(mPackageName); diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/PackageInstaller.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/PackageInstaller.java index 478d0ed680..6305caf2db 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/PackageInstaller.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/PackageInstaller.java @@ -38,7 +38,8 @@ public class PackageInstaller extends BaseLoad { - public void onPackageLoaded() { + @Override + public void onPackageReady() { // /*initHook(new MiuiPackageInstallModify(), PrefsBridge.getBoolean("miui_package_installer_modify"));*/ diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/PersonalAssistant.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/PersonalAssistant.java index 8157ca55ee..5e79997765 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/PersonalAssistant.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/PersonalAssistant.java @@ -30,7 +30,7 @@ public class PersonalAssistant extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { // initHook(new BlurOverlay(), false); initHook(new DisableLiteVersion(), PrefsBridge.getBoolean("personal_assistant_disable_lite_version")); initHook(new UnlockWidgetCountLimit(), PrefsBridge.getBoolean("personal_assistant_unlock_widget_count_limit")); diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Phone.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Phone.java index d11d6062d8..33815b0b61 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Phone.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Phone.java @@ -34,7 +34,7 @@ @HookBase(targetPackage = "com.android.phone") public class Phone extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(new UnlockVoiceLink(), PrefsBridge.getBoolean("phone_unlock_voice_link")); initHook(ModemFeature.INSTANCE, PrefsBridge.getBoolean("phone_smart_dual_sim")); initHook(ViceSlotVolteButton.INSTANCE, PrefsBridge.getBoolean("phone_vice_slot_volte")); diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/PhotoPicker.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/PhotoPicker.java index d1a588469e..96a9793470 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/PhotoPicker.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/PhotoPicker.java @@ -8,7 +8,7 @@ @HookBase(targetPackage = "com.android.photopicker") public class PhotoPicker extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(new DisableReroute(), PrefsBridge.getBoolean("photopicker_disable_reroute")); } } diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Phrase.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Phrase.java index 2db5e6f628..3aac66d025 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Phrase.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Phrase.java @@ -31,7 +31,7 @@ public class Phrase extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(new NewUnPhraseLimit(), PrefsBridge.getBoolean("various_phrase_clipboardlist")); initHook(new UnlockImeClipboardFix(), !InputMethodConfig.getSelectedInputMethodPackages().isEmpty()); } diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/PowerKeeper.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/PowerKeeper.java index e39b590698..680dfedd47 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/PowerKeeper.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/PowerKeeper.java @@ -33,7 +33,7 @@ public class PowerKeeper extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(new GmsDozeFix(), PrefsBridge.getBoolean("powerkeeper_gms_doze_fix")); initHook(new CustomRefreshRate(), PrefsBridge.getBoolean("various_custom_refresh_rate")); initHook(new DisableGetDisplayCtrlCode(), PrefsBridge.getBoolean("powerkeeper_disable_get_display_ctrl_code")); diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/RemoteController.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/RemoteController.java index faf6b7baeb..7fcaaae20b 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/RemoteController.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/RemoteController.java @@ -26,7 +26,7 @@ @HookBase(targetPackage = "com.duokan.phone.remotecontroller") public class RemoteController extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(new DisableAd(), PrefsBridge.getBoolean("remotecontroller_disable_ad")); } } diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Scanner.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Scanner.java index 0634699f40..fe6bcf3757 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Scanner.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Scanner.java @@ -33,7 +33,7 @@ public class Scanner extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(new EnableOcr(), PrefsBridge.getBoolean("scanner_ocr")); initHook(new EnableExcel(), PrefsBridge.getBoolean("scanner_excel")); initHook(new EnablePpt(), PrefsBridge.getBoolean("scanner_ppt")); diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/ScreenRecorder.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/ScreenRecorder.java index 5b9edf8365..c4f4ac700e 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/ScreenRecorder.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/ScreenRecorder.java @@ -30,7 +30,7 @@ public class ScreenRecorder extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(new ForceSupportPlaybackCapture(), PrefsBridge.getBoolean("screenrecorder_force_support_playback_capture")); initHook(UnlockMoreVolumeFromNew.INSTANCE, PrefsBridge.getBoolean("screenrecorder_more_volume")); initHook(new ScreenRecorderConfig(), PrefsBridge.getBoolean("screenrecorder_config")); diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/ScreenShot.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/ScreenShot.java index e5916cb6c7..64a63259e5 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/ScreenShot.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/ScreenShot.java @@ -35,7 +35,7 @@ public class ScreenShot extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(UnlockMinimumCropLimit2.INSTANCE, PrefsBridge.getBoolean("screenshot_unlock_minimum_crop_limit")); initHook(SaveToPictures.INSTANCE, PrefsBridge.getBoolean("screenshot_save_to_pictures")); initHook(DeviceShellCustomize.INSTANCE, !TextUtils.isEmpty(PrefsBridge.getString("screenshot_device_customize", ""))); diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/SecurityAdd.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/SecurityAdd.java index cd4dbcfb97..cb8c0ba867 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/SecurityAdd.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/SecurityAdd.java @@ -28,7 +28,7 @@ public class SecurityAdd extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(new DisableGameBoosterAds(), PrefsBridge.getBoolean("securityadd_disable_gb_ads")); } } diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/SecurityCenter.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/SecurityCenter.java index 17b1f786b8..8434b0772f 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/SecurityCenter.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/SecurityCenter.java @@ -81,7 +81,7 @@ public class SecurityCenter extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { // 应用管理 initHook(new AppDefaultSort(), PrefsBridge.getStringAsInt("security_center_app_default_sort", 0) > 0); initHook(new AppRestrict(), PrefsBridge.getBoolean("security_center_app_restrict")); diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/SimActivate.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/SimActivate.java index e3721a9f75..30deb7272c 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/SimActivate.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/SimActivate.java @@ -29,7 +29,7 @@ public class SimActivate extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(new RoamingActivateHelper(), PrefsBridge.getBoolean("sim_activation_service_disable_activate_when_roaming")); } } diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/SoundRecorder.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/SoundRecorder.java index c0769e8963..2831b387e5 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/SoundRecorder.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/SoundRecorder.java @@ -29,7 +29,7 @@ @HookBase(targetPackage = "com.android.soundrecorder") public class SoundRecorder extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(new DisableAiWatermark(), PrefsBridge.getBoolean("sound_recorder_disable_ai_watermark")); initHook(UnlockRecordingScene.INSTANCE, PrefsBridge.getBoolean("sound_recorder_unlock_recording_scene")); initHook(UnlockAIMode.INSTANCE, PrefsBridge.getBoolean("sound_recorder_unlock_ai")); diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/SystemFramework/SystemFrameworkB.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/SystemFramework/SystemFrameworkB.java index 9e9f683892..a297ec99fb 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/SystemFramework/SystemFrameworkB.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/SystemFramework/SystemFrameworkB.java @@ -92,7 +92,7 @@ public class SystemFrameworkB extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { // 核心破解 initHook(BypassSignCheckForT.INSTANCE, (PrefsBridge.getBoolean("system_framework_core_patch_auth_creak") || PrefsBridge.getBoolean("system_framework_core_patch_disable_integrity")) diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/SystemFramework/SystemFrameworkV.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/SystemFramework/SystemFrameworkV.java index 622d8ed57c..6c76fab2ce 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/SystemFramework/SystemFrameworkV.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/SystemFramework/SystemFrameworkV.java @@ -93,7 +93,7 @@ public class SystemFrameworkV extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(new ModulePackageTrust(), PrefsBridge.getBoolean("home_gesture_enable")); initHook(new GlobalActionBootstrap(), PrefsBridge.getBoolean("home_gesture_enable")); // initHook(new DisableMiuiWatermark(), PrefsBridge.getBoolean("system_framework_disable_miui_watermark")); diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/SystemSettings/SystemSettingsB.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/SystemSettings/SystemSettingsB.java index c18e5ed64c..16fe7d8c38 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/SystemSettings/SystemSettingsB.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/SystemSettings/SystemSettingsB.java @@ -55,7 +55,7 @@ public class SystemSettingsB extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { // 首页 initHook(new HyperCeilerSettings(), PrefsBridge.getStringAsInt("settings_icon", 0) != 0); initHook(new InternationalBuild(), PrefsBridge.getBoolean("system_settings_international_build")); diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/SystemSettings/SystemSettingsV.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/SystemSettings/SystemSettingsV.java index 96fa4d44fa..5b005523c2 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/SystemSettings/SystemSettingsV.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/SystemSettings/SystemSettingsV.java @@ -55,7 +55,7 @@ public class SystemSettingsV extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { // 首页 initHook(new HyperCeilerSettings(), PrefsBridge.getStringAsInt("settings_icon", 0) != 0); initHook(new InternationalBuild(), PrefsBridge.getBoolean("system_settings_international_build")); diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/SystemUI/SystemUIB.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/SystemUI/SystemUIB.java index 3ab6fdd1e8..6f595ee302 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/SystemUI/SystemUIB.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/SystemUI/SystemUIB.java @@ -112,6 +112,11 @@ public class SystemUIB extends BaseLoad { @Override public void onPackageLoaded() { + initHook(DisableMiuiMultiWinSwitch.INSTANCE, PrefsBridge.getBoolean("system_ui_disable_miui_multi_win_switch")); + } + + @Override + public void onPackageReady() { MiuiStub.createHook(); // PluginHelper initHook(NewPluginHelperKt.INSTANCE); @@ -226,7 +231,6 @@ public void onPackageLoaded() { initHook(new AllowManageAllNotifications(), PrefsBridge.getBoolean("system_framework_allow_manage_all_notifications")); initHook(new NotificationFreeform(), PrefsBridge.getBoolean("system_ui_notification_freeform")); initHook(new BrightnessPct(), PrefsBridge.getBoolean("system_showpct_title")); - initHook(DisableMiuiMultiWinSwitch.INSTANCE, PrefsBridge.getBoolean("system_ui_disable_miui_multi_win_switch")); initHook(RemoveMiuiMultiWinSwitch.INSTANCE, PrefsBridge.getBoolean("system_ui_remove_miui_multi_win_switch")); initHook(DisableBottomBar.INSTANCE, PrefsBridge.getBoolean("system_ui_disable_bottombar")); initHook(UnlockClipboard.INSTANCE, PrefsBridge.getBoolean("system_ui_unlock_clipboard")); diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/SystemUI/SystemUIPlugin.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/SystemUI/SystemUIPlugin.java index 67722586a7..449c2f0f77 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/SystemUI/SystemUIPlugin.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/SystemUI/SystemUIPlugin.java @@ -26,7 +26,7 @@ @HookBase(targetPackage = "miui.systemui.plugin") public class SystemUIPlugin extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(FlashLightNotificationColor.INSTANCE, PrefsBridge.getBoolean("system_ui_control_center_opt_notification_element_background_color")); } } diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/SystemUI/SystemUIV.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/SystemUI/SystemUIV.java index aea2489e0d..c072cafd36 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/SystemUI/SystemUIV.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/SystemUI/SystemUIV.java @@ -137,6 +137,11 @@ public class SystemUIV extends BaseLoad { @Override public void onPackageLoaded() { + initHook(DisableMiuiMultiWinSwitch.INSTANCE, PrefsBridge.getBoolean("system_ui_disable_miui_multi_win_switch")); + } + + @Override + public void onPackageReady() { MiuiStub.createHook(); // PluginHelper initHook(NewPluginHelperKt.INSTANCE); @@ -275,7 +280,6 @@ public void onPackageLoaded() { initHook(new MonetThemeOverlay(), PrefsBridge.getBoolean("system_ui_monet_overlay_custom")); initHook(new BrightnessPct(), PrefsBridge.getBoolean("system_showpct_title")); initHook(new NotificationFreeform(), PrefsBridge.getBoolean("system_ui_notification_freeform")); - initHook(DisableMiuiMultiWinSwitch.INSTANCE, PrefsBridge.getBoolean("system_ui_disable_miui_multi_win_switch")); initHook(RemoveMiuiMultiWinSwitch.INSTANCE, PrefsBridge.getBoolean("system_ui_remove_miui_multi_win_switch")); initHook(DisableBottomBar.INSTANCE, PrefsBridge.getBoolean("system_ui_disable_bottombar")); initHook(UnlockClipboard.INSTANCE, PrefsBridge.getBoolean("system_ui_unlock_clipboard")); diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Telecom.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Telecom.java index 803f15addb..2a2f877d55 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Telecom.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Telecom.java @@ -26,7 +26,7 @@ @HookBase(targetPackage = "com.android.server.telecom") public class Telecom extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(new ScamReminderBypass(), PrefsBridge.getBoolean("scam_reminder_bypass")); } } diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/ThemeManager.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/ThemeManager.java index c874dbeb95..b7078a6428 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/ThemeManager.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/ThemeManager.java @@ -31,7 +31,7 @@ public class ThemeManager extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(new AllowThirdTheme(), PrefsBridge.getBoolean("system_framework_allow_third_theme")); initHook(new DisableThemeAdNew(), PrefsBridge.getBoolean("various_theme_disable_ads")); initHook(new AllowDownloadMore(), PrefsBridge.getBoolean("theme_manager_allow_download_more")); diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/TrustService.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/TrustService.java index 0fd903e097..a01057fcc8 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/TrustService.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/TrustService.java @@ -28,7 +28,7 @@ public class TrustService extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(new DisableMrm(), PrefsBridge.getBoolean("trustservice_disable_mrm")); } } diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/TsmClient.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/TsmClient.java index 8afc206baf..d84305c5a0 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/TsmClient.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/TsmClient.java @@ -27,7 +27,7 @@ public class TsmClient extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(AutoNfc.INSTANCE, PrefsBridge.getBoolean("tsmclient_auto_nfc")); } } diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Updater.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Updater.java index 47d920dca4..ba2623c1d5 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Updater.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Updater.java @@ -35,7 +35,7 @@ public class Updater extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { if (PrefsBridge.getBoolean("updater_enable_miui_version")) { if (PrefsBridge.getStringAsInt("updater_version_mode", 1) != 1) { initHook(VersionCodeNew.INSTANCE, true); diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/VoiceAssist.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/VoiceAssist.java index 93d31cb168..5de9f254cf 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/VoiceAssist.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/VoiceAssist.java @@ -8,7 +8,7 @@ @HookBase(targetPackage = "com.miui.voiceassist") public class VoiceAssist extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(new RemoveScreenTransWatermark(), PrefsBridge.getBoolean("voiceassist_remove_screen_trans_watermark")); } } diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/VoiceTrigger.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/VoiceTrigger.java index 7dea81ec60..cdab38eb33 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/VoiceTrigger.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/VoiceTrigger.java @@ -29,7 +29,7 @@ public class VoiceTrigger extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(BypassUDKWordLegalCheck.INSTANCE, PrefsBridge.getBoolean("bypass_voicetrigger_udk_legalcheck")); } } diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Wallet.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Wallet.java index b43e7e9f92..ecbcbe21eb 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Wallet.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Wallet.java @@ -27,7 +27,7 @@ @HookBase(targetPackage = "com.mipay.wallet") public class Wallet extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(new DisableSplashAd(), PrefsBridge.getBoolean("wallet_disable_splash_ad")); } } \ No newline at end of file diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Weather.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Weather.java index 190bea6f26..78b56e17ed 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Weather.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Weather.java @@ -28,7 +28,7 @@ @HookBase(targetPackage = "com.miui.weather2") public class Weather extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(new SetCardLightDarkMode(), PrefsBridge.getStringAsInt("weather_card_display_type", 0) != 0); initHook(new SetDeviceLevel(), PrefsBridge.getStringAsInt("weather_device_level", 3) != 3); initHook(UnlockSuperBlur.INSTANCE, PrefsBridge.getBoolean("weather_unlock_blur")); diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Xmsf.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Xmsf.java index a0283f9951..e9c6fa8eff 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Xmsf.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/app/Xmsf.java @@ -26,7 +26,7 @@ @HookBase(targetPackage = "com.xiaomi.xmsf") public class Xmsf extends BaseLoad { @Override - public void onPackageLoaded() { + public void onPackageReady() { initHook(UnlockFoucsAuth.INSTANCE, PrefsBridge.getBoolean("xmsf_unlock_foucs_app_sign_white_list")); } } diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/base/BaseLoad.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/base/BaseLoad.java index 9ffd0fc4b9..714f35a7b6 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/base/BaseLoad.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/base/BaseLoad.java @@ -38,6 +38,7 @@ import java.util.function.BooleanSupplier; import io.github.libxposed.api.XposedInterface; +import io.github.libxposed.api.XposedModuleInterface.PackageLoadedParam; import io.github.libxposed.api.XposedModuleInterface.PackageReadyParam; import io.github.libxposed.api.XposedModuleInterface.SystemServerStartingParam; import io.github.lingqiqi5211.ezhooktool.xposed.EzXposed; @@ -68,6 +69,9 @@ public abstract class BaseLoad { private boolean mDexKitSessionPrepared = false; private final List mPendingDexKitHooks = new ArrayList<>(); + private boolean mPackageLoadedExecuted = false; + private boolean mPackageReadyExecuted = false; + private record DexKitInitResult(BaseHook hook, boolean shouldInit, Throwable error) { } @@ -196,13 +200,43 @@ public static String getTag() { } } - public abstract void onPackageLoaded(); + public void onPackageLoaded() {} + + public abstract void onPackageReady(); /** - * 加载普通应用 Hook + * 加载早期包 Hook (onPackageLoaded) + */ + public void onLoad(PackageLoadedParam lpparam) { + if (lpparam == null || mPackageLoadedExecuted) return; + mPackageLoadedExecuted = true; + XposedLog.d("BaseLoad", "onLoad(PackageLoadedParam): " + lpparam.getPackageName()); + + synchronized (sLock) { + sClassLoader = lpparam.getDefaultClassLoader(); + sPackageName = lpparam.getPackageName(); + sLpparam = null; + sSystemServerParam = null; + sCurrentHookTag = this.getClass().getSimpleName(); + mResHook = ResourcesTool.getInstance(getXposed().getModuleApplicationInfo().sourceDir); + } + + try { + onPackageLoaded(); + } catch (Throwable t) { + // 异常隔离:极早期 Hook 失败不应中断整个事务 + XposedLog.e(getTag(), "onPackageLoaded execution failed", t); + recordHookInitializationFailure(getTag() + ".onPackageLoaded", t); + } + } + + /** + * 加载标准应用 Hook (onPackageReady) */ public void onLoad(PackageReadyParam lpparam) { - if (lpparam == null) return; + if (lpparam == null || mPackageReadyExecuted) return; + mPackageReadyExecuted = true; + XposedLog.d("BaseLoad", "onLoad(PackageReadyParam): " + lpparam.getPackageName()); synchronized (sLock) { sClassLoader = lpparam.getClassLoader(); @@ -215,7 +249,12 @@ public void onLoad(PackageReadyParam lpparam) { mPendingDexKitHooks.clear(); } - loadModuleResources(); + // 异常隔离:资源加载失败不应导致后续业务 Hook 被跳过 + try { + loadModuleResources(); + } catch (Throwable t) { + XposedLog.e(getTag(), "loadModuleResources failed", t); + } executeHook(); } @@ -223,7 +262,9 @@ public void onLoad(PackageReadyParam lpparam) { * 加载 SystemServer Hook */ public void onLoad(SystemServerStartingParam lpparam) { - if (lpparam == null) return; + if (lpparam == null || mPackageReadyExecuted) return; + mPackageReadyExecuted = true; + XposedLog.d("BaseLoad", "onLoad(SystemServerStartingParam)"); synchronized (sLock) { sClassLoader = lpparam.getClassLoader(); @@ -254,7 +295,11 @@ private void loadModuleResources() { boolean isAndroid = SYSTEM_SERVER.equals(pkgName); ContextUtils.getWaitContext(context -> { if (context != null) { - mResHook.loadModuleRes(context); + try { + mResHook.loadModuleRes(context); + } catch (Throwable t) { + XposedLog.e(getTag(), "loadModuleRes (async) failed", t); + } } }, isAndroid); } @@ -265,7 +310,10 @@ private void loadModuleResources() { private void executeHook() { try { - onPackageLoaded(); + onPackageReady(); + } catch (Throwable t) { + XposedLog.e(getTag(), "onPackageReady execution failed", t); + recordHookInitializationFailure(getTag() + ".onPackageReady", t); } finally { try { flushPendingDexKitHooks(); diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/base/XposedInitEntry.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/base/XposedInitEntry.java index 37c1ee4fa7..5b1e807a54 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/base/XposedInitEntry.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/base/XposedInitEntry.java @@ -36,11 +36,18 @@ import com.sevtinge.hyperceiler.libhook.utils.api.ThreadPoolManager; import com.sevtinge.hyperceiler.libhook.utils.hookapi.tool.ResourcesTool; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.Objects; +import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.TimeUnit; import io.github.libxposed.api.XposedModule; +import io.github.libxposed.api.XposedModuleInterface.PackageLoadedParam; +import io.github.libxposed.api.XposedModuleInterface.PackageReadyParam; +import io.github.libxposed.api.XposedModuleInterface.SystemServerStartingParam; import io.github.lingqiqi5211.ezhooktool.xposed.AutomaticHotReloadResult; import io.github.lingqiqi5211.ezhooktool.xposed.EzXposed; @@ -71,6 +78,9 @@ public class XposedInitEntry extends XposedModule { private volatile boolean prefsInited = false; private volatile boolean runtimeInitialized = false; + /** 长期方案:同一 Generation 内缓存已实例化的模块,防止双阶段初始化导致的重复。 */ + private final Map> mLoadedModules = new ConcurrentHashMap<>(); + @Nullable private volatile Object mLastLpparam; @@ -102,7 +112,9 @@ private void initializeRuntime(@NonNull ModuleLoadedParam param, boolean initial } BaseLoad.init(this); if (!runtimeInitialized) { - EzXposed.onTargetReady(this::installCurrentTargetHooks); + // 长期解决方案:注册双阶段初始化回调,支持极早期 Hook + EzXposed.onPackageLoaded(this::installCurrentTargetLoadedHooks); + EzXposed.onTargetReady(this::installCurrentTargetReadyHooks); runtimeInitialized = true; } } @@ -113,62 +125,89 @@ public void onSystemServerStarting(@NonNull SystemServerStartingParam lpparam) { EzXposed.initOnSystemServerStarting(lpparam); } + @Override + public void onPackageLoaded(@NonNull PackageLoadedParam lpparam) { + super.onPackageLoaded(lpparam); + // 必须先更新本地上下文,再通知框架分发回调,否则回调内拿不到当前的 param + if (shouldInitForPackage(lpparam.getPackageName(), lpparam.isFirstPackage())) { + // 在 system_server 中,不要被包加载回调覆盖掉权威的 SystemServerStartingParam + if (!EzXposed.isSystemServer()) { + mLastLpparam = lpparam; + } + } + EzXposed.initOnPackageLoaded(lpparam); + } + @Override public void onPackageReady(@NonNull PackageReadyParam lpparam) { super.onPackageReady(lpparam); - if (!lpparam.isFirstPackage()) return; - mLastLpparam = lpparam; + // 同理,Ready 阶段也需先行更新上下文 + if (shouldInitForPackage(lpparam.getPackageName(), lpparam.isFirstPackage())) { + // 在 system_server 中,不要被包加载回调覆盖掉权威的 SystemServerStartingParam + if (!EzXposed.isSystemServer()) { + mLastLpparam = lpparam; + } + } EzXposed.initOnPackageReady(lpparam); } + private boolean shouldInitForPackage(String packageName, boolean isFirstPackage) { + // 允许针对特定的系统插件包进行注入,不再仅限于第一个包 + return isFirstPackage || "com.android.systemui".equals(packageName) || "miui.systemui.plugin".equals(packageName); + } + @Override public boolean onHotReloading(@NonNull HotReloadingParam param) { String initializationBlockReason = BaseLoad.getHotReloadBlockReason(); if (initializationBlockReason != null) { - XposedLog.w(TAG, processName, "Hot reload rejected: " + initializationBlockReason); + XposedLog.w("HC-Reload", processName, "Hot reload rejected by BaseLoad: " + initializationBlockReason); return false; } if (ResourcesTool.requiresProcessRestartForHotReload()) { - XposedLog.w(TAG, processName, + XposedLog.w("HC-Reload", processName, "Hot reload rejected: active resource replacements require a full process restart."); return false; } - Object[] extras; - try { - extras = buildHotReloadExtras(); - } catch (Throwable t) { - XposedLog.e(TAG, processName, "Hot reload rejected: failed to capture process state", t); - return false; - } + Object[] extras = buildHotReloadExtras(); + // 如果进程未被 Hook 或初始化未完成,我们仍同意热重载, + // 但由于不保存状态,新 generation 会在 onHotReloaded 中感知到并保持静默。 + // 这消除了大量的 "refused to be hot reloaded" 警告。 if (extras == null) { - XposedLog.w(TAG, processName, "Hot reload rejected: process state is incomplete."); - return false; + XposedLog.d("HC-Reload", processName, "Hot reload accepted (unhooked process). Metadata: " + mLastLpparam); + return true; } + try { - // 复用 EzHookTool 的 target snapshot;extras 只承载项目自己的宿主状态。 if (!EzXposed.handleHotReloading(param, extras)) { - XposedLog.w(TAG, processName, "Hot reload rejected: EzXposed target snapshot is unavailable."); + // 如果 EzXposed 拒绝,说明快照尚未准备好(可能在初始化中途) + XposedLog.w("HC-Reload", processName, "Hot reload rejected by EzXposed. Check log for details."); return false; } } catch (Throwable t) { - XposedLog.e(TAG, processName, "Hot reload rejected: failed to save state", t); + XposedLog.e("HC-Reload", processName, "Hot reload rejected: exception during snapshot save", t); return false; } if (!prepareForHotReload()) { - XposedLog.w(TAG, processName, + XposedLog.w("HC-Reload", processName, "Hot reload rejected: old generation cleanup did not complete safely."); return false; } - XposedLog.i(TAG, processName, "Hot reload accepted."); + XposedLog.i("HC-Reload", processName, "Hot reload accepted."); return true; } @Override public void onHotReloaded(@NonNull HotReloadedParam param) { - // API 102 不会为热重载自动重放 onModuleLoaded;这里重建新 generation 的运行时并注册 - // onTargetReady。重复调用保持幂等,避免重复注册回调。 + // 如果上一代没有保存状态,说明该进程并未实际被 Hook。 + // 此时我们只初始化基础运行时,但不尝试恢复 Hook。 + if (param.getSavedInstanceState() == null) { + initializeRuntime(param, true); + XposedLog.d("HC-Reload", processName, "Hot reloaded gracefully (nothing to restore)."); + return; + } + initializeRuntime(param, true); BaseLoad.beginHotReloadVerification(); try { @@ -184,19 +223,16 @@ public void onHotReloaded(@NonNull HotReloadedParam param) { } ); BaseLoad.verifyHotReloadInitialization(); - XposedLog.i(TAG, processName, + XposedLog.i("HC-Reload", processName, "Hot reload hook transition completed: " + result.getInstalledHookCount() + " logical hook(s), " + result.getAtomicallyReplacedHookCount() + " old physical hook(s) atomically replaced, " + result.getRemovedOldHookCount() + " obsolete physical hook(s) removed."); } catch (Throwable t) { - XposedLog.e(TAG, processName, "Hot reload re-init failed", t); + XposedLog.e("HC-Reload", processName, "Hot reload re-init failed: " + t.getMessage(), t); if (t instanceof RuntimeException runtimeException) { throw runtimeException; } - if (t instanceof Error error) { - throw error; - } throw new IllegalStateException("Hot reload re-init failed", t); } finally { BaseLoad.endHotReloadVerification(); @@ -227,20 +263,34 @@ private void restoreEzXposedRuntime(@NonNull HotReloadExtras extras) { ); } - /** 初次加载与自动热重载共同使用的同步规则初始化入口。 */ - private void installCurrentTargetHooks() { + private void installCurrentTargetLoadedHooks() { Object lpparam = mLastLpparam; - BaseLoad.beginHookInitialization(); - if (lpparam instanceof SystemServerStartingParam systemParam) { - installSystemHooks(systemParam); - } else if (lpparam instanceof PackageReadyParam packageParam) { + if (lpparam instanceof PackageLoadedParam loadedParam) { + // 必须核对回调触发时的包名是否与缓存的 param 一致 + // 防止在多包进程中,由于 EzXposed 无差别分发导致非目标包执行了 Hook + if (!loadedParam.getPackageName().equals(EzXposed.getPackageName())) { + return; + } + if (prepareHookLoad(loadedParam.getPackageName())) return; + invokeInit(loadedParam); + } + } + + private void installCurrentTargetReadyHooks() { + Object lpparam = mLastLpparam; + if (lpparam instanceof PackageReadyParam packageParam) { + // 核对包名一致性 + if (!packageParam.getPackageName().equals(EzXposed.getPackageName())) { + return; + } + BaseLoad.beginHookInitialization(); installPackageHooks(packageParam); - } else { - throw new IllegalStateException("Target state is unavailable before hook initialization"); + BaseLoad.verifyHotReloadInitialization(); + } else if (lpparam instanceof SystemServerStartingParam systemParam) { + BaseLoad.beginHookInitialization(); + installSystemHooks(systemParam); + BaseLoad.verifyHotReloadInitialization(); } - // 热重载时个别规则会自行捕获初始化异常并写入 BaseLoad;必须在 EzHookTool 批次 - // 发布任何新物理 hook 前把它们转回失败,不能等旧 hook 已收尾后才发现。 - BaseLoad.verifyHotReloadInitialization(); } private void installSystemHooks(@NonNull SystemServerStartingParam lpparam) { @@ -263,13 +313,11 @@ private void installPackageHooks(@NonNull PackageReadyParam lpparam) { @Nullable private Object[] buildHotReloadExtras() { Object lpparam = mLastLpparam; - Context appContext = null; - try { - appContext = EzXposed.getAppContextOrNull(); - } catch (Throwable t) { - XposedLog.d(TAG, processName, "Application context is unavailable during hot reload snapshot."); - } - if (lpparam instanceof SystemServerStartingParam) { + Context appContext = EzXposed.getAppContextOrNull(); + + // 优先通过 EzXposed 判定是否为系统进程, + // 彻底解决 system_server 内因 package 加载导致 mLastLpparam 被覆盖的问题 + if (EzXposed.isSystemServer()) { return new Object[]{ null, false, @@ -277,16 +325,23 @@ private Object[] buildHotReloadExtras() { BaseHook.snapshotHotReloadRuntimeState() }; } + if (lpparam instanceof PackageReadyParam packageParam) { - ApplicationInfo appInfo = packageParam.getApplicationInfo(); - if (appInfo == null) return null; return new Object[]{ - appInfo, + packageParam.getApplicationInfo(), packageParam.isFirstPackage(), appContext, BaseHook.snapshotHotReloadRuntimeState() }; } + if (lpparam instanceof PackageLoadedParam loadedParam) { + return new Object[]{ + loadedParam.getApplicationInfo(), + loadedParam.isFirstPackage(), + appContext, + BaseHook.snapshotHotReloadRuntimeState() + }; + } return null; } @@ -336,20 +391,12 @@ private record HotReloadExtras( ) { } - private static final class RestoredPackageReadyParam implements PackageReadyParam { - private final String packageName; - private final ClassLoader classLoader; - @Nullable - private final ApplicationInfo applicationInfo; - private final boolean isFirstPackage; - - RestoredPackageReadyParam(@NonNull String packageName, @NonNull ClassLoader classLoader, - @Nullable ApplicationInfo applicationInfo, boolean isFirstPackage) { - this.packageName = packageName; - this.classLoader = classLoader; - this.applicationInfo = applicationInfo; - this.isFirstPackage = isFirstPackage; - } + private record RestoredPackageReadyParam( + @NonNull String packageName, + @NonNull ClassLoader classLoader, + @Nullable ApplicationInfo applicationInfo, + boolean isFirstPackage + ) implements PackageReadyParam { @NonNull @Override @@ -410,6 +457,10 @@ protected void invokeInit(PackageReadyParam lpparam) { invokeInitInternal(lpparam.getPackageName(), module -> module.onLoad(lpparam)); } + protected void invokeInit(PackageLoadedParam lpparam) { + invokeInitInternal(lpparam.getPackageName(), module -> module.onLoad(lpparam)); + } + protected void invokeInit(SystemServerStartingParam lpparam) { invokeInitInternal(BaseLoad.SYSTEM_SERVER, module -> module.onLoad(lpparam)); } @@ -445,18 +496,29 @@ private void invokeInitInternal(String packageName, ModuleLoader loader) { ModuleMatcher.MatchContext context = buildMatchContext(packageName, dataMap); ModuleMatcher matcher = new ModuleMatcher(context); - dataMap.forEach((className, data) -> { - if (!matcher.shouldLoad(data, packageName)) return; - try { - Class clazz = classLoader.loadClass(className); - BaseLoad module = (BaseLoad) clazz.getDeclaredConstructor().newInstance(); + // 使用缓存的实例列表,确保每个 Generation 内每个包只实例化一次 + List modules = mLoadedModules.computeIfAbsent(packageName, k -> new ArrayList<>()); + + if (modules.isEmpty()) { + dataMap.forEach((className, data) -> { + if (!matcher.shouldLoad(data, packageName)) return; + try { + Class clazz = classLoader.loadClass(className); + BaseLoad module = (BaseLoad) clazz.getDeclaredConstructor().newInstance(); + modules.add(module); + loader.load(module); + } catch (ReflectiveOperationException e) { + XposedLog.e(TAG, "Failed to load module: " + className, e); + BaseLoad.recordHookInitializationFailure(className, e); + BaseLoad.recordHotReloadInitializationFailure(className, e); + } + }); + } else { + // 复用已有实例进行后续阶段的分发 + for (BaseLoad module : modules) { loader.load(module); - } catch (ReflectiveOperationException e) { - XposedLog.e(TAG, "Failed to load module: " + className, e); - BaseLoad.recordHookInitializationFailure(className, e); - BaseLoad.recordHotReloadInitializationFailure(className, e); } - }); + } } private ModuleMatcher.MatchContext buildMatchContext(String packageName, HashMap dataMap) { diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/rules/home/other/ShortcutItemCount.kt b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/rules/home/other/ShortcutItemCount.kt index c41c522d01..47a1110792 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/rules/home/other/ShortcutItemCount.kt +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/rules/home/other/ShortcutItemCount.kt @@ -21,6 +21,7 @@ package com.sevtinge.hyperceiler.libhook.rules.home.other import com.sevtinge.hyperceiler.libhook.base.BaseHook import io.github.lingqiqi5211.ezhooktool.core.callMethod import io.github.lingqiqi5211.ezhooktool.core.findMethod +import io.github.lingqiqi5211.ezhooktool.core.java.Classes.loadClassFirstOrNull import io.github.lingqiqi5211.ezhooktool.core.loadClass import io.github.lingqiqi5211.ezhooktool.xposed.dsl.createAfterHook diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/rules/systemui/other/DisableMiuiMultiWinSwitch.kt b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/rules/systemui/other/DisableMiuiMultiWinSwitch.kt index 33cf39a366..1f98b69503 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/rules/systemui/other/DisableMiuiMultiWinSwitch.kt +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/rules/systemui/other/DisableMiuiMultiWinSwitch.kt @@ -27,13 +27,15 @@ import io.github.lingqiqi5211.ezhooktool.xposed.dsl.createHook // by ljlvink object DisableMiuiMultiWinSwitch : BaseHook() { override fun init() { - if (isMoreAndroidVersion(36)) { - loadClass("com.android.wm.shell.multitasking.miuimultiwinswitch.miuiwindowdecor.decoration.MiuiDecorationDotView") - } else { - loadClass("com.android.wm.shell.multitasking.miuimultiwinswitch.miuiwindowdecor.MiuiDotView", lpparam.classLoader - ) - }.findMethod { name("onDraw") }.createHook { - returnConstant(null) - } + loadClass( + if (isMoreAndroidVersion(36)) { + "com.android.wm.shell.multitasking.miuimultiwinswitch.miuiwindowdecor.decoration.MiuiDecorationDotView" + } else { + "com.android.wm.shell.multitasking.miuimultiwinswitch.miuiwindowdecor.MiuiDotView" + }, + classLoader + ).findMethod { name("onDraw") }.createHook { + returnConstant(null) + } } } diff --git a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/utils/hookapi/tool/ResourcesTool.java b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/utils/hookapi/tool/ResourcesTool.java index 5104432ded..521b6c4187 100644 --- a/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/utils/hookapi/tool/ResourcesTool.java +++ b/library/libhook/src/main/java/com/sevtinge/hyperceiler/libhook/utils/hookapi/tool/ResourcesTool.java @@ -241,14 +241,19 @@ private boolean loadResAboveApi30(Resources resources, boolean doOnMainLooper) { if (resourcesLoader == null) { synchronized (this) { if (resourcesLoader == null) { - try (ParcelFileDescriptor pfd = ParcelFileDescriptor.open( - new File(mModulePath), ParcelFileDescriptor.MODE_READ_ONLY)) { + File apkFile = new File(mModulePath); + if (!apkFile.exists() || !apkFile.canRead()) { + XposedLog.w(TAG, "Cannot read module APK for resource loading: " + mModulePath); + return false; + } + try (ParcelFileDescriptor pfd = ParcelFileDescriptor.open(apkFile, ParcelFileDescriptor.MODE_READ_ONLY)) { + if (pfd == null) return false; ResourcesProvider provider = ResourcesProvider.loadFromApk(pfd); ResourcesLoader loader = new ResourcesLoader(); loader.addProvider(provider); resourcesLoader = loader; } catch (IOException ex) { - XposedLog.e(TAG, "Failed to add resource! debug: above api 30.", ex); + XposedLog.e(TAG, "Failed to load module resources via ResourcesLoader", ex); return false; } } @@ -286,6 +291,9 @@ private boolean addLoaders(Resources resources) { XposedLog.e(TAG, "Failed to add loaders!", ex); return false; } + } catch (Throwable t) { + XposedLog.e(TAG, "Critical error adding loaders", t); + return false; } return true; } @@ -301,7 +309,7 @@ private boolean loadResBelowApi30(Resources resources) { addAssetPath.setAccessible(true); Integer cookie = (Integer) addAssetPath.invoke(assets, mModulePath); if (cookie == null || cookie == 0) { - XposedLog.w(TAG, "Method 'addAssetPath' result 0, maybe load res failed!"); + XposedLog.w(TAG, "Method 'addAssetPath' result 0"); return false; } } catch (Throwable ex) { @@ -473,11 +481,11 @@ private synchronized void detachModuleResources() { try { resources.addLoaders(loader); } catch (Throwable restoreError) { - XposedLog.w(TAG, "Failed to restore ResourcesLoader after detach failure", restoreError); + XposedLog.w(TAG, "Failed to restore ResourcesLoader", restoreError); } } throw new IllegalStateException( - "Unable to detach the old module ResourcesLoader before hot reload", + "Unable to detach the old module ResourcesLoader", firstFailure ); } @@ -591,16 +599,16 @@ public void before(HookParam callback) { private Object convertResultType(String methodName, Object value) { return switch (methodName) { case "getInteger", "getColor", "getDimensionPixelOffset", "getDimensionPixelSize" -> - value instanceof Number ? Math.round(((Number) value).floatValue()) : null; + value instanceof Number number ? Math.round(number.floatValue()) : null; case "getDimension", "getFloat" -> - value instanceof Number ? ((Number) value).floatValue() : null; + value instanceof Number number ? number.floatValue() : null; case "getText" -> - value instanceof CharSequence ? value : null; + value instanceof CharSequence sequence ? sequence : null; case "getBoolean" -> - value instanceof Boolean ? value : null; + value instanceof Boolean bool ? bool : null; default -> value; };