├── .editorconfig
├── .gitattributes
├── .github
├── ISSUE_TEMPLATE
│ ├── BUG-REPORT.yml
│ ├── FEATURE-REQUEST.yml
│ ├── MIGRATION-REQUEST.yml
│ └── config.yml
├── dependabot.yml
└── workflows
│ ├── android.yml
│ ├── androidu.yml
│ └── crowdin.yml
├── .gitignore
├── .idea
└── codeStyles
│ ├── Project.xml
│ └── codeStyleConfig.xml
├── LICENSE
├── README.md
├── README_en-US.md
├── README_pt-BR.md
├── app
├── .gitignore
├── build.gradle
├── dict.txt
├── libs
│ ├── animation-release.aar
│ ├── appcompat-release.aar
│ ├── core-release.aar
│ ├── haptic-release.aar
│ ├── hyperceiler_expansion_packs-debug.aar
│ ├── miui-framework.jar
│ ├── miui.jar
│ ├── preference-release.aar
│ ├── smooth-release.aar
│ └── springback-release.aar
├── proguard-log.pro
├── proguard-rules.pro
└── src
│ └── main
│ ├── AndroidManifest.xml
│ ├── assets
│ └── xposed_init
│ ├── java
│ └── com
│ │ ├── sevtinge
│ │ └── cemiuiler
│ │ │ ├── Application.java
│ │ │ ├── CrashRecord.kt
│ │ │ ├── XposedInit.kt
│ │ │ ├── callback
│ │ │ └── IAppSelectCallback.java
│ │ │ ├── data
│ │ │ ├── AppData.java
│ │ │ ├── LocationData.java
│ │ │ ├── ModData.java
│ │ │ ├── SQLiteHelper.java
│ │ │ └── adapter
│ │ │ │ ├── AppDataAdapter.java
│ │ │ │ ├── ModSearchAdapter.java
│ │ │ │ └── MutipleChoiceAdapter.java
│ │ │ ├── module
│ │ │ ├── app
│ │ │ │ ├── AiAsst.java
│ │ │ │ ├── Aod.java
│ │ │ │ ├── Barrage.java
│ │ │ │ ├── Browser.java
│ │ │ │ ├── Camera.java
│ │ │ │ ├── Clock.java
│ │ │ │ ├── ContentExtension.java
│ │ │ │ ├── Creation.java
│ │ │ │ ├── Downloads.java
│ │ │ │ ├── ExternalStorage.java
│ │ │ │ ├── FileExplorer.java
│ │ │ │ ├── Gallery.java
│ │ │ │ ├── GlobalActions.java
│ │ │ │ ├── GuardProvider.java
│ │ │ │ ├── Home.java
│ │ │ │ ├── InCallUi.java
│ │ │ │ ├── Joyose.java
│ │ │ │ ├── Lbe.java
│ │ │ │ ├── Market.java
│ │ │ │ ├── MediaEditor.java
│ │ │ │ ├── MiLink.java
│ │ │ │ ├── MiSettings.java
│ │ │ │ ├── MiShare.java
│ │ │ │ ├── MiWallpaper.java
│ │ │ │ ├── Mirror.java
│ │ │ │ ├── Mms.java
│ │ │ │ ├── Mtb.java
│ │ │ │ ├── Music.java
│ │ │ │ ├── NetworkBoost.java
│ │ │ │ ├── Nfc.java
│ │ │ │ ├── Notes.java
│ │ │ │ ├── PackageInstaller.java
│ │ │ │ ├── PersonalAssistant.java
│ │ │ │ ├── Phone.java
│ │ │ │ ├── PowerKeeper.java
│ │ │ │ ├── Scanner.java
│ │ │ │ ├── ScreenRecorder.java
│ │ │ │ ├── ScreenShot.java
│ │ │ │ ├── SecurityCenter.java
│ │ │ │ ├── Settings.java
│ │ │ │ ├── SystemFramework.java
│ │ │ │ ├── SystemFrameworkForCorePatch.java
│ │ │ │ ├── SystemSettings.java
│ │ │ │ ├── SystemUI.java
│ │ │ │ ├── ThemeManager.java
│ │ │ │ ├── TsmClient.java
│ │ │ │ ├── Updater.java
│ │ │ │ ├── Various.java
│ │ │ │ ├── VoiceAssist.java
│ │ │ │ └── Weather.java
│ │ │ ├── base
│ │ │ │ ├── BaseHook.java
│ │ │ │ ├── BaseModule.java
│ │ │ │ ├── BaseXposedInit.java
│ │ │ │ ├── HostDir.kt
│ │ │ │ └── IXposedHook.java
│ │ │ └── hook
│ │ │ │ ├── aiasst
│ │ │ │ └── AiCaptions.kt
│ │ │ │ ├── aod
│ │ │ │ └── UnlockAlwaysOnDisplay.kt
│ │ │ │ ├── barrage
│ │ │ │ ├── AnyBarrage.kt
│ │ │ │ └── CustomBarrageLength.kt
│ │ │ │ ├── browser
│ │ │ │ └── DebugMode.kt
│ │ │ │ ├── camera
│ │ │ │ ├── EnableLabOptions.kt
│ │ │ │ ├── Unlock120Fps.java
│ │ │ │ ├── Unlock60Fps.java
│ │ │ │ ├── UnlockAiEnhance.java
│ │ │ │ ├── UnlockAiShutter.java
│ │ │ │ ├── UnlockAiWatermark.java
│ │ │ │ ├── UnlockAmbilight.java
│ │ │ │ ├── UnlockAudioZoom.java
│ │ │ │ ├── UnlockClone.java
│ │ │ │ ├── UnlockColorEnhance.java
│ │ │ │ ├── UnlockCosmeticMirror.java
│ │ │ │ ├── UnlockCvlens.java
│ │ │ │ ├── UnlockCyberFocusVersion2.java
│ │ │ │ ├── UnlockDoc.java
│ │ │ │ ├── UnlockDualcam.java
│ │ │ │ ├── UnlockDuration.java
│ │ │ │ ├── UnlockFilm.java
│ │ │ │ ├── UnlockFilmDelay.java
│ │ │ │ ├── UnlockFilmDollyZoom.java
│ │ │ │ ├── UnlockFilmDream.java
│ │ │ │ ├── UnlockFilmSlowShutter.java
│ │ │ │ ├── UnlockFilmTimeBackflow.java
│ │ │ │ ├── UnlockFilmTimeFreeze.java
│ │ │ │ ├── UnlockHandGesture.java
│ │ │ │ ├── UnlockHdr.java
│ │ │ │ ├── UnlockHeic.java
│ │ │ │ ├── UnlockIdcard.java
│ │ │ │ ├── UnlockLog.java
│ │ │ │ ├── UnlockMakeup.java
│ │ │ │ ├── UnlockMenMakeup.java
│ │ │ │ ├── UnlockMilive.java
│ │ │ │ ├── UnlockMoon.java
│ │ │ │ ├── UnlockNevus.java
│ │ │ │ ├── UnlockNewBeauty.java
│ │ │ │ ├── UnlockPano.java
│ │ │ │ ├── UnlockPixel.java
│ │ │ │ ├── UnlockPortrait.java
│ │ │ │ ├── UnlockRaw.java
│ │ │ │ ├── UnlockSlow.java
│ │ │ │ ├── UnlockTrackEyes.java
│ │ │ │ ├── UnlockTrackFeature.java
│ │ │ │ ├── UnlockTrackFocus.java
│ │ │ │ ├── UnlockVideosky.java
│ │ │ │ ├── UnlockVlog.java
│ │ │ │ └── UnlockVlogPro.java
│ │ │ │ ├── clock
│ │ │ │ └── EnableHourGlass.java
│ │ │ │ ├── contentextension
│ │ │ │ ├── DoublePress.kt
│ │ │ │ ├── HorizontalContentExtension.kt
│ │ │ │ ├── LinkOpenMode.java
│ │ │ │ ├── SuperImage.kt
│ │ │ │ ├── UnlockTaplus.kt
│ │ │ │ └── UseThirdPartyBrowser.java
│ │ │ │ ├── creation
│ │ │ │ └── UnlockCreation.kt
│ │ │ │ ├── downloads
│ │ │ │ └── FuckXlDownload.java
│ │ │ │ ├── externalstorage
│ │ │ │ └── DisableFolderCantUse.java
│ │ │ │ ├── fileexplorer
│ │ │ │ └── SelectName.kt
│ │ │ │ ├── gallery
│ │ │ │ ├── EnableHdrEnhance.java
│ │ │ │ ├── EnableIdPhoto.java
│ │ │ │ ├── EnableMagicMatting.java
│ │ │ │ ├── EnableMagicSky.java
│ │ │ │ ├── EnableOcr.java
│ │ │ │ ├── EnableOcrForm.java
│ │ │ │ ├── EnablePdf.java
│ │ │ │ ├── EnablePhotoMovie.java
│ │ │ │ ├── EnableRemover2.java
│ │ │ │ ├── EnableTextYanhua.java
│ │ │ │ ├── EnableVideoEditor.java
│ │ │ │ └── EnableVideoPost.java
│ │ │ │ ├── guardprovider
│ │ │ │ ├── DisableUploadAppList.java
│ │ │ │ └── DisableUploadAppListNew.kt
│ │ │ │ ├── home
│ │ │ │ ├── AllAppsBlur.java
│ │ │ │ ├── AnimDurationRatio.kt
│ │ │ │ ├── FreeFormCountForHome.java
│ │ │ │ ├── HideNavigationBar.java
│ │ │ │ ├── HomePortraitReverse.java
│ │ │ │ ├── MaxFreeForm.kt
│ │ │ │ ├── ScreenSwipe.java
│ │ │ │ ├── SeekPoints.java
│ │ │ │ ├── SetDeviceLevel.kt
│ │ │ │ ├── StickyFloatingWindowsForHome.java
│ │ │ │ ├── ToastSlideAgain.java
│ │ │ │ ├── UnlockHotseatIcon.kt
│ │ │ │ ├── UserPresentAnimation.java
│ │ │ │ ├── WidgetCornerRadius.java
│ │ │ │ ├── WidgetCrack.java
│ │ │ │ ├── dock
│ │ │ │ │ ├── DisableRecentsIcon.kt
│ │ │ │ │ ├── DockCustom.java
│ │ │ │ │ ├── FoldDeviceDock.kt
│ │ │ │ │ ├── FoldDock.java
│ │ │ │ │ ├── HideSeekPoint.kt
│ │ │ │ │ └── ShowDockIconTitle.kt
│ │ │ │ ├── drawer
│ │ │ │ │ ├── AllAppsContainerViewBlur.kt
│ │ │ │ │ ├── AppDrawer.kt
│ │ │ │ │ └── PinyinArrangement.java
│ │ │ │ ├── folder
│ │ │ │ │ ├── BigFolderIcon.java
│ │ │ │ │ ├── BigFolderIconBlur.java
│ │ │ │ │ ├── BigFolderIconBlur1x2.java
│ │ │ │ │ ├── BigFolderIconBlur2x1.java
│ │ │ │ │ ├── BigFolderItemMaxCount.java
│ │ │ │ │ ├── FolderAnimation.kt
│ │ │ │ │ ├── FolderAutoClose.kt
│ │ │ │ │ ├── FolderBlur.kt
│ │ │ │ │ ├── FolderColumns.kt
│ │ │ │ │ ├── FolderShade.java
│ │ │ │ │ ├── FolderVerticalPadding.kt
│ │ │ │ │ └── SmallFolderIconBlur.java
│ │ │ │ ├── gesture
│ │ │ │ │ ├── DoubleTap.java
│ │ │ │ │ ├── DoubleTapController.kt
│ │ │ │ │ ├── HotSeatSwipe.java
│ │ │ │ │ ├── QuickBack.java
│ │ │ │ │ ├── ShakeDevice.java
│ │ │ │ │ └── SwipeAndStop.java
│ │ │ │ ├── layout
│ │ │ │ │ ├── HotSeatsHeight.java
│ │ │ │ │ ├── HotSeatsMarginBottom.java
│ │ │ │ │ ├── HotSeatsMarginTop.java
│ │ │ │ │ ├── SearchBarMarginBottom.java
│ │ │ │ │ ├── ShowClock.java
│ │ │ │ │ ├── UnlockGrids.java
│ │ │ │ │ ├── UnlockGridsNoWord.java
│ │ │ │ │ └── WorkspacePadding.java
│ │ │ │ ├── mipad
│ │ │ │ │ ├── EnableHideGestureLine.kt
│ │ │ │ │ ├── EnableMoreSetting.kt
│ │ │ │ │ └── SetGestureNeedFingerNum.kt
│ │ │ │ ├── navigation
│ │ │ │ │ ├── BackGestureAreaHeight.java
│ │ │ │ │ └── BackGestureAreaWidth.java
│ │ │ │ ├── other
│ │ │ │ │ ├── AlwaysBlurWallpaper.kt
│ │ │ │ │ ├── AlwaysShowStatusClock.kt
│ │ │ │ │ ├── BlurRadius.kt
│ │ │ │ │ ├── BlurWhenShowShortcutMenu.kt
│ │ │ │ │ ├── DisableHideGoogle.kt
│ │ │ │ │ ├── FixAndroidRS.kt
│ │ │ │ │ ├── FreeformShortcutMenu.java
│ │ │ │ │ ├── HomeMode.java
│ │ │ │ │ ├── InfiniteScroll.java
│ │ │ │ │ ├── OverlapMode.kt
│ │ │ │ │ ├── ShortcutBackgroundBlur.kt
│ │ │ │ │ ├── ShortcutItemCount.kt
│ │ │ │ │ └── ShowAllHideApp.kt
│ │ │ │ ├── recent
│ │ │ │ │ ├── AlwaysShowCleanUp.kt
│ │ │ │ │ ├── BlurLevel.kt
│ │ │ │ │ ├── CardTextColor.kt
│ │ │ │ │ ├── CardTextSize.kt
│ │ │ │ │ ├── DisableRecentViewWallpaperDarken.kt
│ │ │ │ │ ├── FreeformCardBackgroundColor.kt
│ │ │ │ │ ├── HideCleanUp.kt
│ │ │ │ │ ├── HideFreeform.kt
│ │ │ │ │ ├── HideStatusBarWhenEnterRecent.kt
│ │ │ │ │ ├── MemInfoShow.kt
│ │ │ │ │ ├── RealMemory.kt
│ │ │ │ │ ├── RecentResource.kt
│ │ │ │ │ ├── RecentText.kt
│ │ │ │ │ ├── RemoveCardAnim.kt
│ │ │ │ │ ├── RemoveIcon.kt
│ │ │ │ │ ├── TaskViewHorizontal.kt
│ │ │ │ │ └── TaskViewVertical.kt
│ │ │ │ ├── title
│ │ │ │ │ ├── AnimParamCustom.java
│ │ │ │ │ ├── BigIconCorner.kt
│ │ │ │ │ ├── DisableHideFile.kt
│ │ │ │ │ ├── DisableHideTheme.kt
│ │ │ │ │ ├── DownloadAnimation.java
│ │ │ │ │ ├── EnableIconMonetColor.kt
│ │ │ │ │ ├── EnableIconMonoChrome.java
│ │ │ │ │ ├── FixAnimation.java
│ │ │ │ │ ├── HiddenAllTitle.java
│ │ │ │ │ ├── IconScaleHook.java
│ │ │ │ │ ├── IconTitleColor.kt
│ │ │ │ │ ├── LargeIconCornerRadius.java
│ │ │ │ │ ├── NewInstallIndicator.java
│ │ │ │ │ ├── PerfectIcon.java
│ │ │ │ │ ├── TitleFontSize.java
│ │ │ │ │ └── TitleMarquee.java
│ │ │ │ └── widget
│ │ │ │ │ ├── AllWidgetAnimation.java
│ │ │ │ │ ├── AllowMoveAllWidgetToMinus.kt
│ │ │ │ │ ├── AlwaysShowMiuiWidget.kt
│ │ │ │ │ ├── HideWidgetTitles.kt
│ │ │ │ │ └── ResizableWidgets.kt
│ │ │ │ ├── incallui
│ │ │ │ ├── AnswerInHeadUp.java
│ │ │ │ └── HideCrbt.java
│ │ │ │ ├── joyose
│ │ │ │ ├── DisableCloudControl.java
│ │ │ │ ├── DisableCloudControl.kt
│ │ │ │ ├── EnableGpuTuner.java
│ │ │ │ └── EnableGpuTuner.kt
│ │ │ │ ├── lbe
│ │ │ │ └── DisableClipboardTip.kt
│ │ │ │ ├── market
│ │ │ │ ├── DeviceModify.java
│ │ │ │ └── NewIcon.java
│ │ │ │ ├── mediaeditor
│ │ │ │ ├── FilterManagerAll.kt
│ │ │ │ └── UnlockMinimumCropLimitNew.kt
│ │ │ │ ├── milink
│ │ │ │ └── UnlockMiShare.java
│ │ │ │ ├── mirror
│ │ │ │ └── UnlockMiuiPlus.java
│ │ │ │ ├── misettings
│ │ │ │ ├── CustomRefreshRate.kt
│ │ │ │ └── ShowMoreFpsList.kt
│ │ │ │ ├── mishare
│ │ │ │ ├── NoAutoTurnOff.kt
│ │ │ │ └── UnlockTurboMode.kt
│ │ │ │ ├── miwallpaper
│ │ │ │ └── UnlockSuperWallpaper.java
│ │ │ │ ├── mms
│ │ │ │ └── DisableAd.kt
│ │ │ │ ├── mtb
│ │ │ │ ├── BypassAuthentication.kt
│ │ │ │ └── IsUserBuild.kt
│ │ │ │ ├── music
│ │ │ │ └── DisableAd.java
│ │ │ │ ├── networkboost
│ │ │ │ └── LinkTurboToast.java
│ │ │ │ ├── nfc
│ │ │ │ ├── AllowInformationScreen.kt
│ │ │ │ └── DisableSound.java
│ │ │ │ ├── packageinstaller
│ │ │ │ ├── AllAsSystemApp.kt
│ │ │ │ ├── DisableAD.kt
│ │ │ │ ├── DisableCountChecking.kt
│ │ │ │ ├── DisableSafeModelTip.kt
│ │ │ │ ├── DisplayMoreApkInfo.java
│ │ │ │ ├── DisplayMoreApkInfoNew.kt
│ │ │ │ ├── InstallRiskDisable.kt
│ │ │ │ ├── InstallSource.java
│ │ │ │ ├── MiuiPackageInstallModify.java
│ │ │ │ ├── SafeMode.java
│ │ │ │ └── UpdateSystemApp.java
│ │ │ │ ├── personalassistant
│ │ │ │ ├── BlurOverlay.java
│ │ │ │ ├── BlurPersonalAssistant.kt
│ │ │ │ ├── BlurPersonalAssistantBackGround.kt
│ │ │ │ ├── EnableFoldWidget.java
│ │ │ │ ├── PadWidgetEnable.java
│ │ │ │ └── WidgetCrack.kt
│ │ │ │ ├── phone
│ │ │ │ ├── DualNrSupport.kt
│ │ │ │ ├── DualSaSupport.kt
│ │ │ │ ├── ModemFeature.kt
│ │ │ │ ├── N1BandPhone.kt
│ │ │ │ ├── N28BandPhone.kt
│ │ │ │ ├── N5N8BandPhone.kt
│ │ │ │ └── ViceSlotVolteButton.kt
│ │ │ │ ├── powerkeeper
│ │ │ │ ├── CustomRefreshRate.kt
│ │ │ │ ├── DontKillApps.kt
│ │ │ │ ├── LockMaxFps.kt
│ │ │ │ └── PreventBatteryWitelist.java
│ │ │ │ ├── scanner
│ │ │ │ ├── EnableCard.java
│ │ │ │ ├── EnableDocPpt.java
│ │ │ │ ├── EnableOcr.java
│ │ │ │ ├── EnableTranslation.java
│ │ │ │ └── document
│ │ │ │ │ ├── EnableDocument.java
│ │ │ │ │ ├── EnableExcel.java
│ │ │ │ │ └── EnablePpt.java
│ │ │ │ ├── screenrecorder
│ │ │ │ ├── ForceSupportPlaybackCapture.kt
│ │ │ │ ├── SaveToMovies.kt
│ │ │ │ ├── ScreenRecorderConfig.kt
│ │ │ │ └── UnlockMoreVolumeFrom.java
│ │ │ │ ├── screenshot
│ │ │ │ ├── DeviceShellCustomize.kt
│ │ │ │ ├── SaveToPictures.kt
│ │ │ │ ├── UnlockMinimumCropLimit.kt
│ │ │ │ └── UnlockPrivacyMarking.kt
│ │ │ │ ├── securitycenter
│ │ │ │ ├── AppLockPinScramble.java
│ │ │ │ ├── BlurSecurity.kt
│ │ │ │ ├── DisableReport.kt
│ │ │ │ ├── GetBubbleAppString.kt
│ │ │ │ ├── IsSbnBelongToActiveBubbleApp.kt
│ │ │ │ ├── NewBoxBlur.java
│ │ │ │ ├── RemoveConversationBubbleSettingsRestriction.kt
│ │ │ │ ├── RemoveOpenAppConfirmationPopup.kt
│ │ │ │ ├── SidebarLineCustom.kt
│ │ │ │ ├── VideoDolbyOpen.java
│ │ │ │ ├── app
│ │ │ │ │ ├── AppDefaultSort.java
│ │ │ │ │ ├── AppDetails.java
│ │ │ │ │ ├── AppDisable.java
│ │ │ │ │ ├── AppRestrict.java
│ │ │ │ │ └── OpenByDefaultSetting.kt
│ │ │ │ ├── battery
│ │ │ │ │ ├── ScreenUsedTime.kt
│ │ │ │ │ ├── ShowBatteryTemperature.java
│ │ │ │ │ ├── ShowBatteryTemperatureNew.kt
│ │ │ │ │ ├── UnlockSmartCharge.kt
│ │ │ │ │ └── UnlockSuperWirelessCharge.kt
│ │ │ │ ├── beauty
│ │ │ │ │ ├── BeautyFace.kt
│ │ │ │ │ ├── BeautyLightAuto.kt
│ │ │ │ │ ├── BeautyPc.kt
│ │ │ │ │ └── BeautyPrivacy.kt
│ │ │ │ ├── lab
│ │ │ │ │ ├── AiClipboardEnable.kt
│ │ │ │ │ ├── BlurLocationEnable.kt
│ │ │ │ │ ├── GetNumberEnable.kt
│ │ │ │ │ └── LabUtilsClass.kt
│ │ │ │ ├── other
│ │ │ │ │ ├── DisableRootCheck.kt
│ │ │ │ │ ├── FuckRiskPkg.kt
│ │ │ │ │ ├── LockOneHundredPoints.kt
│ │ │ │ │ ├── NoLowBatteryWarning.kt
│ │ │ │ │ └── SkipCountDownLimit.java
│ │ │ │ └── sidebar
│ │ │ │ │ ├── AddSideBarExpandReceiver.java
│ │ │ │ │ ├── DisableDockSuggest.java
│ │ │ │ │ ├── game
│ │ │ │ │ ├── RemoveMacroBlackList.kt
│ │ │ │ │ └── UnlockGunService.kt
│ │ │ │ │ └── video
│ │ │ │ │ ├── DisableRemoveScreenHoldOn.kt
│ │ │ │ │ ├── UnlockEnhanceContours.kt
│ │ │ │ │ ├── UnlockMemc.kt
│ │ │ │ │ └── UnlockSuperResolution.kt
│ │ │ │ ├── settings
│ │ │ │ ├── CemiuilerSettings.java
│ │ │ │ ├── NotificationImportance.java
│ │ │ │ └── VolumeSeparateControlForSettings.java
│ │ │ │ ├── systemframework
│ │ │ │ ├── AllRotations.java
│ │ │ │ ├── AllowUninstall.java
│ │ │ │ ├── AllowUntrustedTouch.java
│ │ │ │ ├── AppDisableService.java
│ │ │ │ ├── AppLinkVerify.java
│ │ │ │ ├── BackgroundBlurDrawable.kt
│ │ │ │ ├── CleanOpenMenu.java
│ │ │ │ ├── CleanShareMenu.java
│ │ │ │ ├── DeleteOnPostNotification.kt
│ │ │ │ ├── DisableCleaner.kt
│ │ │ │ ├── DisableFreeformBlackList.java
│ │ │ │ ├── DisablePinVerifyPer72h.java
│ │ │ │ ├── FlagSecure.java
│ │ │ │ ├── FreeFormCount.kt
│ │ │ │ ├── FreeformBubble.java
│ │ │ │ ├── LocationSimulation.java
│ │ │ │ ├── MultiFreeFormSupported.kt
│ │ │ │ ├── PackagePermissions.java
│ │ │ │ ├── RemoveSmallWindowRestrictions.kt
│ │ │ │ ├── ScreenRotation.java
│ │ │ │ ├── SpeedInstall.java
│ │ │ │ ├── StickyFloatingWindows.java
│ │ │ │ ├── ThemeProvider.kt
│ │ │ │ ├── ThermalBrightness.java
│ │ │ │ ├── UseOriginalAnimation.java
│ │ │ │ ├── VolumeDefaultStream.java
│ │ │ │ ├── VolumeDisableSafe.java
│ │ │ │ ├── VolumeFirstPress.java
│ │ │ │ ├── VolumeMediaSteps.kt
│ │ │ │ ├── VolumeSeparateControl.java
│ │ │ │ ├── VolumeSteps.java
│ │ │ │ ├── corepatch
│ │ │ │ │ ├── BypassSignCheckForT.kt
│ │ │ │ │ ├── CorePatchForR.java
│ │ │ │ │ ├── CorePatchForS.java
│ │ │ │ │ ├── CorePatchForT.java
│ │ │ │ │ ├── CorePatchForU.java
│ │ │ │ │ ├── ReturnConstant.java
│ │ │ │ │ └── XposedHelper.java
│ │ │ │ ├── display
│ │ │ │ │ ├── AutoBrightness.java
│ │ │ │ │ ├── DisplayCutout.kt
│ │ │ │ │ └── ToastTime.java
│ │ │ │ ├── freeform
│ │ │ │ │ └── OpenAppInFreeForm.java
│ │ │ │ ├── mipad
│ │ │ │ │ ├── IgnoreStylusKeyGesture.kt
│ │ │ │ │ ├── NoMagicPointer.kt
│ │ │ │ │ ├── RemoveStylusBluetoothRestriction.kt
│ │ │ │ │ ├── RestoreEsc.kt
│ │ │ │ │ └── SetGestureNeedFingerNum.kt
│ │ │ │ └── network
│ │ │ │ │ ├── DualNRSupport.kt
│ │ │ │ │ ├── DualSASupport.kt
│ │ │ │ │ ├── N1Band.kt
│ │ │ │ │ ├── N28Band.kt
│ │ │ │ │ └── N5N8Band.kt
│ │ │ │ ├── systemsettings
│ │ │ │ ├── AddMiuiPlusEntry.java
│ │ │ │ ├── AppsFreezerEnable.java
│ │ │ │ ├── EnableFoldArea.kt
│ │ │ │ ├── EnablePadArea.kt
│ │ │ │ ├── EnableSpeedMode.java
│ │ │ │ ├── InternationalBuild.java
│ │ │ │ ├── NewNFCPage.java
│ │ │ │ ├── NoveltyHaptic.kt
│ │ │ │ ├── QuickManageOverlayPermission.kt
│ │ │ │ ├── QuickManageUnknownAppSources.kt
│ │ │ │ ├── UnLockAreaScreenshot.kt
│ │ │ │ ├── UnlockTaplusForSettings.kt
│ │ │ │ ├── ViewWifiPasswordHook.java
│ │ │ │ ├── VoipAssistantController.java
│ │ │ │ └── aiimage
│ │ │ │ │ ├── UnlockAi.java
│ │ │ │ │ ├── UnlockMemc.java
│ │ │ │ │ └── UnlockSuperResolution.java
│ │ │ │ ├── systemui
│ │ │ │ ├── AutoCollapse.java
│ │ │ │ ├── BatteryIndicator.java
│ │ │ │ ├── BluetoothRestrict.java
│ │ │ │ ├── ChargeAnimationStyle.java
│ │ │ │ ├── ClockCenterHook.java
│ │ │ │ ├── EnableVolumeBlur.kt
│ │ │ │ ├── HideNavigationBar.java
│ │ │ │ ├── MiuiGxzwSize.java
│ │ │ │ ├── MonetThemeOverlay.java
│ │ │ │ ├── NotificationFix.java
│ │ │ │ ├── NotificationFreeform.java
│ │ │ │ ├── NotificationVolumeSeparateSlider.java
│ │ │ │ ├── OriginChargeAnimation.java
│ │ │ │ ├── QSDetailBackGround.java
│ │ │ │ ├── QSLabelsHook.java
│ │ │ │ ├── ShouldPlayUnmuteSoundHook.java
│ │ │ │ ├── StatusBarActions.java
│ │ │ │ ├── SwitchControlPanel.java
│ │ │ │ ├── UseNativeRecents.java
│ │ │ │ ├── VolumeTimerValuesHook.java
│ │ │ │ ├── controlcenter
│ │ │ │ │ ├── AddBlurEffectToNotificationView.kt
│ │ │ │ │ ├── BluetoothTileStyle.java
│ │ │ │ │ ├── CCGrid.kt
│ │ │ │ │ ├── CompactNotificationsHook.kt
│ │ │ │ │ ├── ControlCenterStyle.kt
│ │ │ │ │ ├── FiveGTile.java
│ │ │ │ │ ├── FixMediaControlPanel.kt
│ │ │ │ │ ├── FlashLight.java
│ │ │ │ │ ├── GmsTile.java
│ │ │ │ │ ├── MuteVisibleNotifications.java
│ │ │ │ │ ├── NotificationWeather.kt
│ │ │ │ │ ├── NotificationWeatherNew.kt
│ │ │ │ │ ├── NotificationWeatherOld.kt
│ │ │ │ │ ├── QQSGrid.kt
│ │ │ │ │ ├── QQSGridOld.java
│ │ │ │ │ ├── QSControlDetailBackgroundAlpha.kt
│ │ │ │ │ ├── QSGrid.kt
│ │ │ │ │ ├── QSGridLabels.java
│ │ │ │ │ ├── QSGridOld.java
│ │ │ │ │ ├── RedirectToNotificationChannelSetting.kt
│ │ │ │ │ ├── SmartHome.java
│ │ │ │ │ ├── SunlightMode.java
│ │ │ │ │ └── SwitchCCAndNotification.java
│ │ │ │ ├── lockscreen
│ │ │ │ │ ├── AddBlurEffectToLockScreen.kt
│ │ │ │ │ ├── BlurButton.kt
│ │ │ │ │ ├── ChargingCVP.kt
│ │ │ │ │ ├── ClockDisplaySeconds.kt
│ │ │ │ │ ├── ForceClockUseSystemFontsHook.kt
│ │ │ │ │ ├── HideLockScreenHint.kt
│ │ │ │ │ ├── HideLockScreenStatusBar.kt
│ │ │ │ │ ├── HideLockscreenZenMode.kt
│ │ │ │ │ ├── LockScreenDoubleTapToSleep.kt
│ │ │ │ │ ├── NoPassword.kt
│ │ │ │ │ ├── RemoveCamera.kt
│ │ │ │ │ ├── RemoveSmartScreen.kt
│ │ │ │ │ └── ScramblePIN.java
│ │ │ │ ├── navigation
│ │ │ │ │ ├── HandleLineCustom.kt
│ │ │ │ │ └── NavigationCustom.java
│ │ │ │ ├── plugin
│ │ │ │ │ ├── EnableVolumeBlur.java
│ │ │ │ │ ├── HideDeviceControlEntry.java
│ │ │ │ │ ├── HideMiPlayEntry.java
│ │ │ │ │ ├── HideMiSmartHubEntry.java
│ │ │ │ │ └── PluginHelper.java
│ │ │ │ └── statusbar
│ │ │ │ │ ├── BigMobileNetworkType.java
│ │ │ │ │ ├── DisplayHardwareDetail.java
│ │ │ │ │ ├── DoubleTapToSleep.kt
│ │ │ │ │ ├── DualRowSignalHook.java
│ │ │ │ │ ├── HideStatusBarBeforeScreenshot.java
│ │ │ │ │ ├── MobileNetwork.java
│ │ │ │ │ ├── NotificationIconColumns.kt
│ │ │ │ │ ├── SelectiveHideIconForAlarmClock.java
│ │ │ │ │ ├── WifiStandard.java
│ │ │ │ │ ├── clock
│ │ │ │ │ ├── TimeCustomization.kt
│ │ │ │ │ └── TimeStyle.kt
│ │ │ │ │ ├── icon
│ │ │ │ │ ├── all
│ │ │ │ │ │ ├── BatteryStyle.kt
│ │ │ │ │ │ ├── BluetoothIcon.java
│ │ │ │ │ │ ├── DataSaverIcon.java
│ │ │ │ │ │ ├── HideBatteryIcon.kt
│ │ │ │ │ │ ├── HideVoWiFiIcon.kt
│ │ │ │ │ │ ├── IconsFromSystemManager.kt
│ │ │ │ │ │ ├── StatusBarIcon.kt
│ │ │ │ │ │ ├── StatusBarIconPositionAdjust.java
│ │ │ │ │ │ ├── StatusBarSimIcon.kt
│ │ │ │ │ │ └── WifiNetworkIndicator.kt
│ │ │ │ │ └── t
│ │ │ │ │ │ └── UseNewHD.kt
│ │ │ │ │ ├── layout
│ │ │ │ │ └── StatusBarLayout.kt
│ │ │ │ │ ├── model
│ │ │ │ │ ├── MobileTypeSingleHook.kt
│ │ │ │ │ └── MobileTypeTextCustom.kt
│ │ │ │ │ └── network
│ │ │ │ │ ├── NetworkSpeed.kt
│ │ │ │ │ ├── NetworkSpeedSec.kt
│ │ │ │ │ ├── NetworkSpeedSpacing.kt
│ │ │ │ │ ├── NetworkSpeedStyle.kt
│ │ │ │ │ ├── StatusBarNoNetSpeedSep.kt
│ │ │ │ │ └── s
│ │ │ │ │ └── NetworkSpeedWidth.kt
│ │ │ │ ├── thememanager
│ │ │ │ ├── DisableThemeAd.java
│ │ │ │ ├── DisableThemeAdNew.kt
│ │ │ │ ├── EnableFoldTheme.java
│ │ │ │ ├── EnablePadTheme.java
│ │ │ │ ├── ThemeCrackNew.kt
│ │ │ │ └── VersionCodeModify.java
│ │ │ │ ├── tsmclient
│ │ │ │ └── AutoNfc.kt
│ │ │ │ ├── updater
│ │ │ │ ├── DeviceModify.kt
│ │ │ │ ├── VabUpdate.kt
│ │ │ │ ├── VersionCodeModify.java
│ │ │ │ └── VersionCodeNew.kt
│ │ │ │ ├── various
│ │ │ │ ├── CollapseMiuiTitle.java
│ │ │ │ ├── DialogBlur.java
│ │ │ │ ├── DialogCustom.java
│ │ │ │ ├── DialogGravity.java
│ │ │ │ ├── MiuiAppNoOverScroll.java
│ │ │ │ ├── NoAccessDeviceLogsRequest.kt
│ │ │ │ ├── NotificationBlur.java
│ │ │ │ ├── UnlockIme.kt
│ │ │ │ └── UnlockSuperClipboard.kt
│ │ │ │ ├── voiceassist
│ │ │ │ └── UseThirdPartyBrowser.kt
│ │ │ │ └── weather
│ │ │ │ └── SetDeviceLevel.java
│ │ │ ├── prefs
│ │ │ └── PreferenceHeader.java
│ │ │ ├── provider
│ │ │ └── SharedPrefsProvider.java
│ │ │ ├── ui
│ │ │ ├── CustomHookActivity.java
│ │ │ ├── HideAppActivity.java
│ │ │ ├── MainActivity.java
│ │ │ ├── ModuleSettingsActivity.java
│ │ │ ├── SubPickerActivity.java
│ │ │ ├── SubSettings.java
│ │ │ ├── base
│ │ │ │ ├── BaseSettingsActivity.java
│ │ │ │ ├── BaseSettingsProxy.java
│ │ │ │ ├── SettingsActivity.java
│ │ │ │ └── SettingsProxy.java
│ │ │ ├── customhook
│ │ │ │ └── CustomHookConfigActivity.java
│ │ │ ├── fragment
│ │ │ │ ├── AboutFragment.kt
│ │ │ │ ├── AiAsstFragment.java
│ │ │ │ ├── AodFragment.java
│ │ │ │ ├── BarrageFragment.java
│ │ │ │ ├── BrowserFragment.java
│ │ │ │ ├── CameraFragment.java
│ │ │ │ ├── ClockFragment.java
│ │ │ │ ├── ContentExtensionFragment.java
│ │ │ │ ├── CreationFragment.java
│ │ │ │ ├── DownloadsFragment.java
│ │ │ │ ├── FileExplorerFragment.java
│ │ │ │ ├── GalleryFragment.java
│ │ │ │ ├── GuardProviderFragment.java
│ │ │ │ ├── HomeFragment.java
│ │ │ │ ├── InCallUiFragment.java
│ │ │ │ ├── JoyoseFragment.java
│ │ │ │ ├── LbeFragment.java
│ │ │ │ ├── MainFragment.java
│ │ │ │ ├── MarketFragment.java
│ │ │ │ ├── MediaEditorFragment.java
│ │ │ │ ├── MiLinkFragment.java
│ │ │ │ ├── MiSettingsFragment.java
│ │ │ │ ├── MiShareFragment.java
│ │ │ │ ├── MiWallpaperFragment.java
│ │ │ │ ├── MirrorFragment.java
│ │ │ │ ├── MiuiPackageInstallerFragment.java
│ │ │ │ ├── MmsFragment.java
│ │ │ │ ├── ModuleSettingsFragment.java
│ │ │ │ ├── MtbFragment.java
│ │ │ │ ├── MusicFragment.java
│ │ │ │ ├── NetworkBoostFragment.java
│ │ │ │ ├── NfcFragment.java
│ │ │ │ ├── PersonalAssistantFragment.java
│ │ │ │ ├── PhoneFragment.java
│ │ │ │ ├── PowerKeeperFragment.java
│ │ │ │ ├── ScannerFragment.java
│ │ │ │ ├── ScreenRecorderFragment.java
│ │ │ │ ├── ScreenShotFragment.java
│ │ │ │ ├── SecurityCenterFragment.java
│ │ │ │ ├── SystemFrameworkFragment.java
│ │ │ │ ├── SystemSettingsFragment.java
│ │ │ │ ├── SystemUIFragment.java
│ │ │ │ ├── ThemeManagerFragment.java
│ │ │ │ ├── TsmClientFragment.java
│ │ │ │ ├── UpdaterFragment.java
│ │ │ │ ├── VariousFragment.java
│ │ │ │ ├── WeatherFragment.java
│ │ │ │ ├── about
│ │ │ │ │ ├── AboutContributerFragment.java
│ │ │ │ │ └── AboutUseFragment.java
│ │ │ │ ├── base
│ │ │ │ │ ├── BasePreferenceFragment.java
│ │ │ │ │ └── SettingsPreferenceFragment.java
│ │ │ │ ├── framework
│ │ │ │ │ ├── DisplaySettings.java
│ │ │ │ │ ├── FreeFormSettings.java
│ │ │ │ │ ├── NetworkSettings.java
│ │ │ │ │ ├── OtherSettings.java
│ │ │ │ │ └── VolumeSettings.java
│ │ │ │ ├── home
│ │ │ │ │ ├── HomeDockSettings.java
│ │ │ │ │ ├── HomeDrawerSettings.java
│ │ │ │ │ ├── HomeFolderSettings.java
│ │ │ │ │ ├── HomeGestureSettings.java
│ │ │ │ │ ├── HomeLayoutSettings.java
│ │ │ │ │ ├── HomeOtherSettings.java
│ │ │ │ │ ├── HomeRecentSettings.java
│ │ │ │ │ ├── HomeTitleAnimSettings.java
│ │ │ │ │ ├── HomeTitleSettings.java
│ │ │ │ │ ├── HomeWidgetSettings.java
│ │ │ │ │ └── anim
│ │ │ │ │ │ ├── HomeTitleAnim1Settings.java
│ │ │ │ │ │ ├── HomeTitleAnim2Settings.java
│ │ │ │ │ │ ├── HomeTitleAnim3Settings.java
│ │ │ │ │ │ ├── HomeTitleAnim4Settings.java
│ │ │ │ │ │ ├── HomeTitleAnim5Settings.java
│ │ │ │ │ │ ├── HomeTitleAnim6Settings.java
│ │ │ │ │ │ ├── HomeTitleAnim7Settings.java
│ │ │ │ │ │ └── HomeTitleAnim8Settings.java
│ │ │ │ ├── settings
│ │ │ │ │ └── SafeModeFragment.java
│ │ │ │ ├── sub
│ │ │ │ │ ├── AppPicker.java
│ │ │ │ │ ├── CustomBackgroundSettings.java
│ │ │ │ │ └── MultiActionSettings.java
│ │ │ │ ├── systemui
│ │ │ │ │ ├── ControlCenterSettings.java
│ │ │ │ │ ├── LockScreenSettings.java
│ │ │ │ │ ├── NavigationSettings.java
│ │ │ │ │ ├── StatusBarSettings.java
│ │ │ │ │ ├── SystemUIOtherSettings.java
│ │ │ │ │ └── statusbar
│ │ │ │ │ │ ├── BatteryDetailIndicatorSettings.java
│ │ │ │ │ │ ├── BatteryIndicatorSettings.java
│ │ │ │ │ │ ├── BatteryStyleSettings.java
│ │ │ │ │ │ ├── ClockIndicatorSettings.java
│ │ │ │ │ │ ├── DoubleLineNetworkSettings.java
│ │ │ │ │ │ ├── IconManageSettings.java
│ │ │ │ │ │ ├── MobileNetworkTypeSettings.java
│ │ │ │ │ │ └── NetworkSpeedIndicatorSettings.java
│ │ │ │ └── various
│ │ │ │ │ ├── AOSPSettings.java
│ │ │ │ │ ├── AlertDialogSettings.java
│ │ │ │ │ └── MiPadSettings.java
│ │ │ └── various
│ │ │ │ ├── LocationDataActivity.java
│ │ │ │ ├── LocationSimulationActivity.java
│ │ │ │ └── fragment
│ │ │ │ └── VariousFragment.java
│ │ │ ├── utils
│ │ │ ├── BackupUtils.java
│ │ │ ├── BitmapUtils.java
│ │ │ ├── BlurUtils.java
│ │ │ ├── ColorUtils.kt
│ │ │ ├── ColorUtilsStatic.java
│ │ │ ├── CtaUtils.java
│ │ │ ├── DexKit.kt
│ │ │ ├── DialogHelper.java
│ │ │ ├── DisplayUtils.java
│ │ │ ├── Helpers.java
│ │ │ ├── HookUtils.kt
│ │ │ ├── KotlinXposedHelper.kt
│ │ │ ├── LogcatHelper.java
│ │ │ ├── MathUtils.java
│ │ │ ├── PrefsMap.java
│ │ │ ├── PrefsUtils.java
│ │ │ ├── PropertyUtils.kt
│ │ │ ├── ResourcesHook.java
│ │ │ ├── SearchHelper.java
│ │ │ ├── SettingLauncher.java
│ │ │ ├── SettingLauncherHelper.java
│ │ │ ├── ShakeManager.java
│ │ │ ├── ShellUtils.java
│ │ │ ├── SystemProperties.kt
│ │ │ ├── TileUtils.java
│ │ │ ├── ToastHelper.java
│ │ │ ├── XposedUtils.java
│ │ │ ├── api
│ │ │ │ ├── LinQiqiApis.kt
│ │ │ │ ├── VoyagerApis.kt
│ │ │ │ └── loadClassByLazy.kt
│ │ │ ├── devicesdk
│ │ │ │ ├── AppUtils.kt
│ │ │ │ └── SystemSDK.kt
│ │ │ └── log
│ │ │ │ ├── AndroidLogUtils.java
│ │ │ │ ├── XposedLogUtils.java
│ │ │ │ └── XposedLogUtilsKt.kt
│ │ │ └── view
│ │ │ ├── BatteryIndicatorView.java
│ │ │ ├── BlurFrameLayout.java
│ │ │ ├── CircleImageView.java
│ │ │ ├── MultipleChoiceView.java
│ │ │ ├── RestartAlertDialog.java
│ │ │ ├── SpinnerEx.java
│ │ │ ├── WeatherData.kt
│ │ │ └── WeatherView.kt
│ │ └── zhenxiang
│ │ └── blur
│ │ ├── BackgroundBlurDrawableExtensions.kt
│ │ ├── BlurFrameLayout.kt
│ │ ├── BlurLinearLayout.kt
│ │ ├── SystemBlurController.kt
│ │ ├── ViewExtensions.kt
│ │ └── model
│ │ └── CornerRadius.kt
│ └── res
│ ├── color
│ ├── ic_small_window_color.xml
│ ├── ic_small_window_color2.xml
│ ├── ic_small_window_color3.xml
│ ├── ic_small_window_color4.xml
│ ├── ic_small_window_color5.xml
│ └── visual_check_text_color.xml
│ ├── drawable-v31
│ └── ic_launcher_foreground.xml
│ ├── drawable
│ ├── baseline_wb_sunny_24.xml
│ ├── bubble_bar_pop_bg.xml
│ ├── ic_aiasst.webp
│ ├── ic_android_settings.xml
│ ├── ic_aod.webp
│ ├── ic_arrow_edit.xml
│ ├── ic_ationbar_back.xml
│ ├── ic_audio_system.xml
│ ├── ic_browser.webp
│ ├── ic_call.webp
│ ├── ic_camera.webp
│ ├── ic_cemiuiler_settings_v130.xml
│ ├── ic_cemiuiler_settings_v140.xml
│ ├── ic_clock.webp
│ ├── ic_contentextension.webp
│ ├── ic_control_center_5g_toggle_off.xml
│ ├── ic_control_center_5g_toggle_on.xml
│ ├── ic_control_center_gms_toggle_off.xml
│ ├── ic_control_center_gms_toggle_on.xml
│ ├── ic_creation.webp
│ ├── ic_custom.webp
│ ├── ic_default_icon.xml
│ ├── ic_downloads.webp
│ ├── ic_fileexplorer.webp
│ ├── ic_gallery.webp
│ ├── ic_guard_provider.webp
│ ├── ic_guard_provider_new.webp
│ ├── ic_home.webp
│ ├── ic_launcher_foreground.xml
│ ├── ic_lbe.webp
│ ├── ic_lingqiqi.webp
│ ├── ic_market.webp
│ ├── ic_mediaeditor.webp
│ ├── ic_milink.webp
│ ├── ic_misettings.webp
│ ├── ic_mishare.webp
│ ├── ic_miui_plus.webp
│ ├── ic_miui_volume_notification.xml
│ ├── ic_miui_volume_notification_mute.xml
│ ├── ic_miwallpaper.webp
│ ├── ic_mms.webp
│ ├── ic_moralnorm.webp
│ ├── ic_mtb.webp
│ ├── ic_music.webp
│ ├── ic_package_installer.webp
│ ├── ic_packageinstaller_background_dark.xml
│ ├── ic_packageinstaller_background_light.xml
│ ├── ic_personal_assistant.webp
│ ├── ic_phone.webp
│ ├── ic_powerkeeper.webp
│ ├── ic_qs_tile_bg_disabled.xml
│ ├── ic_qs_tile_bg_enabled.xml
│ ├── ic_qs_tile_bg_warning.xml
│ ├── ic_reboot_small.xml
│ ├── ic_scanner.webp
│ ├── ic_screenrecorder.webp
│ ├── ic_screenshot.webp
│ ├── ic_security_center.webp
│ ├── ic_securityadd.webp
│ ├── ic_settings.xml
│ ├── ic_sevtinge.webp
│ ├── ic_small_window.xml
│ ├── ic_system_framework.webp
│ ├── ic_system_framework_new.xml
│ ├── ic_system_settings.webp
│ ├── ic_system_ui.webp
│ ├── ic_system_ui_new.xml
│ ├── ic_theme_manager.webp
│ ├── ic_tsmclient.webp
│ ├── ic_updater.webp
│ ├── ic_various.xml
│ ├── ic_various_new.webp
│ ├── ic_voyager.webp
│ ├── ic_weather.webp
│ ├── ic_yifeplayte.webp
│ ├── shutdown_progress.xml
│ ├── statusbar_signal_1_0.xml
│ ├── statusbar_signal_1_0_dark.xml
│ ├── statusbar_signal_1_0_dark_theme.webp
│ ├── statusbar_signal_1_0_dark_thick.xml
│ ├── statusbar_signal_1_0_theme.webp
│ ├── statusbar_signal_1_0_thick.xml
│ ├── statusbar_signal_1_0_tint.xml
│ ├── statusbar_signal_1_0_tint_thick.xml
│ ├── statusbar_signal_1_1.xml
│ ├── statusbar_signal_1_1_dark.xml
│ ├── statusbar_signal_1_1_dark_theme.webp
│ ├── statusbar_signal_1_1_dark_thick.xml
│ ├── statusbar_signal_1_1_theme.webp
│ ├── statusbar_signal_1_1_thick.xml
│ ├── statusbar_signal_1_1_tint.xml
│ ├── statusbar_signal_1_1_tint_thick.xml
│ ├── statusbar_signal_1_2.xml
│ ├── statusbar_signal_1_2_dark.xml
│ ├── statusbar_signal_1_2_dark_theme.webp
│ ├── statusbar_signal_1_2_dark_thick.xml
│ ├── statusbar_signal_1_2_theme.webp
│ ├── statusbar_signal_1_2_thick.xml
│ ├── statusbar_signal_1_2_tint.xml
│ ├── statusbar_signal_1_2_tint_thick.xml
│ ├── statusbar_signal_1_3.xml
│ ├── statusbar_signal_1_3_dark.xml
│ ├── statusbar_signal_1_3_dark_theme.webp
│ ├── statusbar_signal_1_3_dark_thick.xml
│ ├── statusbar_signal_1_3_theme.webp
│ ├── statusbar_signal_1_3_thick.xml
│ ├── statusbar_signal_1_3_tint.xml
│ ├── statusbar_signal_1_3_tint_thick.xml
│ ├── statusbar_signal_1_4.xml
│ ├── statusbar_signal_1_4_dark.xml
│ ├── statusbar_signal_1_4_dark_theme.webp
│ ├── statusbar_signal_1_4_dark_thick.xml
│ ├── statusbar_signal_1_4_theme.webp
│ ├── statusbar_signal_1_4_thick.xml
│ ├── statusbar_signal_1_4_tint.xml
│ ├── statusbar_signal_1_4_tint_thick.xml
│ ├── statusbar_signal_1_5.xml
│ ├── statusbar_signal_1_5_dark.xml
│ ├── statusbar_signal_1_5_dark_theme.webp
│ ├── statusbar_signal_1_5_dark_thick.xml
│ ├── statusbar_signal_1_5_theme.webp
│ ├── statusbar_signal_1_5_thick.xml
│ ├── statusbar_signal_1_5_tint.xml
│ ├── statusbar_signal_1_5_tint_thick.xml
│ ├── statusbar_signal_2_0.xml
│ ├── statusbar_signal_2_0_dark.xml
│ ├── statusbar_signal_2_0_dark_theme.webp
│ ├── statusbar_signal_2_0_dark_thick.xml
│ ├── statusbar_signal_2_0_theme.webp
│ ├── statusbar_signal_2_0_thick.xml
│ ├── statusbar_signal_2_0_tint.xml
│ ├── statusbar_signal_2_0_tint_thick.xml
│ ├── statusbar_signal_2_1.xml
│ ├── statusbar_signal_2_1_dark.xml
│ ├── statusbar_signal_2_1_dark_theme.webp
│ ├── statusbar_signal_2_1_dark_thick.xml
│ ├── statusbar_signal_2_1_theme.webp
│ ├── statusbar_signal_2_1_thick.xml
│ ├── statusbar_signal_2_1_tint.xml
│ ├── statusbar_signal_2_1_tint_thick.xml
│ ├── statusbar_signal_2_2.xml
│ ├── statusbar_signal_2_2_dark.xml
│ ├── statusbar_signal_2_2_dark_theme.webp
│ ├── statusbar_signal_2_2_dark_thick.xml
│ ├── statusbar_signal_2_2_theme.webp
│ ├── statusbar_signal_2_2_thick.xml
│ ├── statusbar_signal_2_2_tint.xml
│ ├── statusbar_signal_2_2_tint_thick.xml
│ ├── statusbar_signal_2_3.xml
│ ├── statusbar_signal_2_3_dark.xml
│ ├── statusbar_signal_2_3_dark_theme.webp
│ ├── statusbar_signal_2_3_dark_thick.xml
│ ├── statusbar_signal_2_3_theme.webp
│ ├── statusbar_signal_2_3_thick.xml
│ ├── statusbar_signal_2_3_tint.xml
│ ├── statusbar_signal_2_3_tint_thick.xml
│ ├── statusbar_signal_2_4.xml
│ ├── statusbar_signal_2_4_dark.xml
│ ├── statusbar_signal_2_4_dark_theme.webp
│ ├── statusbar_signal_2_4_dark_thick.xml
│ ├── statusbar_signal_2_4_theme.webp
│ ├── statusbar_signal_2_4_thick.xml
│ ├── statusbar_signal_2_4_tint.xml
│ ├── statusbar_signal_2_4_tint_thick.xml
│ ├── statusbar_signal_2_5.xml
│ ├── statusbar_signal_2_5_dark.xml
│ ├── statusbar_signal_2_5_dark_theme.webp
│ ├── statusbar_signal_2_5_dark_thick.xml
│ ├── statusbar_signal_2_5_theme.webp
│ ├── statusbar_signal_2_5_thick.xml
│ ├── statusbar_signal_2_5_tint.xml
│ └── statusbar_signal_2_5_tint_thick.xml
│ ├── layout
│ ├── activity_about.xml
│ ├── activity_custom_hook.xml
│ ├── activity_custom_hook_config.xml
│ ├── activity_location.xml
│ ├── fragment_app_picker.xml
│ ├── fragment_common_padded.xml
│ ├── frame_content.xml
│ ├── item_app_list.xml
│ ├── item_location.xml
│ ├── item_mutiplechoice.xml
│ ├── item_search_result.xml
│ ├── location_edit_dialog.xml
│ ├── preference_custom_blur_dark_mode.xml
│ ├── preference_custom_blur_light_mode.xml
│ ├── preference_dialog_edittext.xml
│ ├── preference_divider.xml
│ ├── preference_header.xml
│ ├── preference_round_layout.xml
│ ├── preference_seekbar_no_padding.xml
│ ├── preference_text.xml
│ ├── settings_main.xml
│ ├── statusbar_text_icon.xml
│ └── view_mutiplechoice.xml
│ ├── menu
│ ├── menu_location.xml
│ ├── menu_location_simulation.xml
│ ├── menu_main.xml
│ └── menu_system_framework_other.xml
│ ├── mipmap-anydpi-v26
│ └── ic_launcher.xml
│ ├── resources.properties
│ ├── values-ja-rJP
│ └── strings.xml
│ ├── values-night-v31
│ └── colors.xml
│ ├── values-night
│ └── themes.xml
│ ├── values-pt-rBR
│ └── strings.xml
│ ├── values-ru-rRU
│ └── strings.xml
│ ├── values-tr-rTR
│ └── strings.xml
│ ├── values-v31
│ └── colors.xml
│ ├── values-vi-rVN
│ └── strings.xml
│ ├── values-zh-rCN
│ └── strings.xml
│ ├── values-zh-rHK
│ └── strings.xml
│ ├── values-zh-rTW
│ └── strings.xml
│ ├── values
│ ├── arrays.xml
│ ├── attrs.xml
│ ├── bools.xml
│ ├── colors.xml
│ ├── dimens.xml
│ ├── integer.xml
│ ├── strings.xml
│ └── themes.xml
│ └── xml
│ ├── aiasst.xml
│ ├── aod.xml
│ ├── backup_rules.xml
│ ├── barrage.xml
│ ├── browser.xml
│ ├── camera.xml
│ ├── clock.xml
│ ├── content_extension.xml
│ ├── creation.xml
│ ├── custom_background.xml
│ ├── data_extraction_rules.xml
│ ├── downloads.xml
│ ├── fileexplorer.xml
│ ├── framework.xml
│ ├── framework_display.xml
│ ├── framework_freeform.xml
│ ├── framework_other.xml
│ ├── framework_phone.xml
│ ├── framework_volume.xml
│ ├── gallery.xml
│ ├── guard_provider.xml
│ ├── home.xml
│ ├── home_dock.xml
│ ├── home_drawer.xml
│ ├── home_folder.xml
│ ├── home_gesture.xml
│ ├── home_layout.xml
│ ├── home_multi_action.xml
│ ├── home_other.xml
│ ├── home_recent.xml
│ ├── home_title.xml
│ ├── home_title_anim.xml
│ ├── home_title_anim_1.xml
│ ├── home_title_anim_2.xml
│ ├── home_title_anim_3.xml
│ ├── home_title_anim_4.xml
│ ├── home_title_anim_5.xml
│ ├── home_title_anim_6.xml
│ ├── home_title_anim_7.xml
│ ├── home_title_anim_8.xml
│ ├── home_widget.xml
│ ├── incallui.xml
│ ├── joyose.xml
│ ├── lbe_security.xml
│ ├── market.xml
│ ├── mediaeditor.xml
│ ├── mi_settings.xml
│ ├── milink.xml
│ ├── mirror.xml
│ ├── mishare.xml
│ ├── miwallpaper.xml
│ ├── mms.xml
│ ├── mtb.xml
│ ├── music.xml
│ ├── networkboost.xml
│ ├── nfc.xml
│ ├── package_installer.xml
│ ├── personal_assistant.xml
│ ├── phone.xml
│ ├── powerkeeper.xml
│ ├── prefs_about.xml
│ ├── prefs_about_contributor.xml
│ ├── prefs_about_use.xml
│ ├── prefs_main.xml
│ ├── prefs_settings.xml
│ ├── scanner.xml
│ ├── screenrecorder.xml
│ ├── screenshot.xml
│ ├── security_center.xml
│ ├── settings_safe_mode.xml
│ ├── system_settings.xml
│ ├── system_ui.xml
│ ├── system_ui_control_center.xml
│ ├── system_ui_lock_screen.xml
│ ├── system_ui_navigation.xml
│ ├── system_ui_other.xml
│ ├── system_ui_status_bar.xml
│ ├── system_ui_status_bar_battery_indicator.xml
│ ├── system_ui_status_bar_battery_styles.xml
│ ├── system_ui_status_bar_clock_indicator.xml
│ ├── system_ui_status_bar_doubleline_network.xml
│ ├── system_ui_status_bar_hardware_detail_indicator.xml
│ ├── system_ui_status_bar_icon_manage.xml
│ ├── system_ui_status_bar_mobile_network_type.xml
│ ├── system_ui_status_bar_network_speed_indicator.xml
│ ├── theme_manager.xml
│ ├── tsmclient.xml
│ ├── updater.xml
│ ├── various.xml
│ ├── various_aosp.xml
│ ├── various_dialog.xml
│ ├── various_location_simulation.xml
│ ├── various_mipad.xml
│ └── weather.xml
├── build.gradle
├── config.gradle
├── crowdin.yml
├── gradle.properties
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── hidden-api
├── .gitignore
├── build.gradle.kts
├── proguard-rules.pro
└── src
│ └── main
│ └── java
│ ├── android
│ └── view
│ │ └── ViewRootImpl.java
│ ├── com
│ └── android
│ │ └── internal
│ │ └── graphics
│ │ └── drawable
│ │ └── BackgroundBlurDrawable.java
│ └── miui
│ ├── app
│ └── MiuiFreeFormManager.java
│ └── drm
│ ├── DrmManager.kt
│ └── ThemeReceiver.kt
├── imgs
└── icon.png
├── settings.gradle
└── signing.properties.example
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | charset = utf-8
5 | end_of_line = lf
6 | indent_size = 4
7 | indent_style = space
8 | insert_final_newline = true
9 | trim_trailing_whitespace = true
10 |
11 | [*.xml]
12 | insert_final_newline = false
13 |
14 | [*.yml]
15 | indent_size = 2
16 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto eol=lf
3 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/FEATURE-REQUEST.yml:
--------------------------------------------------------------------------------
1 | name: "💡 需求"
2 | description: 新功能需求
3 | title: "💡 [需求] <标题>"
4 | labels: [
5 | "enhancement"
6 | ]
7 | body:
8 | - type: textarea
9 | id: requirement
10 | attributes:
11 | label: "需求内容"
12 | description: "简单说明你的需求"
13 | placeholder: 请添加...
14 | validations:
15 | required: true
16 | - type: textarea
17 | id: refs
18 | attributes:
19 | label: "实现思路&截图"
20 | description: 如果可能,请提供实现思路或者相关图片
21 | placeholder: ""
22 | validations:
23 | required: false
24 | - type: textarea
25 | id: basic_example
26 | attributes:
27 | label: "简单例子"
28 | description: 说明该功能的基本示例
29 | placeholder: 为...添加...以便...
30 | validations:
31 | required: true
32 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/MIGRATION-REQUEST.yml:
--------------------------------------------------------------------------------
1 | name: "🔌 移植"
2 | description: 新功能需求
3 | title: "🔌 [移植] <标题>"
4 | labels: [
5 | "enhancement"
6 | ]
7 | body:
8 | - type: input
9 | id: repo
10 | attributes:
11 | label: "仓库地址"
12 | description: "提供仓库地址以便我们更快地工作"
13 | placeholder: "https://github.com/"
14 | validations:
15 | required: false
16 | - type: textarea
17 | id: requirement
18 | attributes:
19 | label: "移植内容"
20 | description: "简单说明需要移植的内容"
21 | placeholder: 移植...软件的...功能
22 | validations:
23 | required: true
24 | - type: textarea
25 | id: feature_desc
26 | attributes:
27 | label: "相关描述&截图"
28 | description: 如果可能,请提供相关功能描述及图片
29 | placeholder: ""
30 | validations:
31 | required: false
32 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/config.yml:
--------------------------------------------------------------------------------
1 | blank_issues_enabled: false
--------------------------------------------------------------------------------
/.github/dependabot.yml:
--------------------------------------------------------------------------------
1 | # To get started with Dependabot version updates, you'll need to specify which
2 | # package ecosystems to update and where the package manifests are located.
3 | # Please see the documentation for all configuration options:
4 | # https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
5 |
6 | version: 2
7 | updates:
8 | - package-ecosystem: "gradle"
9 | directory: "/"
10 | schedule:
11 | interval: "daily"
12 |
13 | - package-ecosystem: "github-actions"
14 | directory: "/"
15 | schedule:
16 | interval: "daily"
17 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | .idea
5 | .DS_Store
6 | /build
7 | /captures
8 | .externalNativeBuild
9 | .cxx
10 | local.properties
11 | /app/release
12 | /app/beta
13 | /app/canary
14 | /app/debug
15 |
--------------------------------------------------------------------------------
/.idea/codeStyles/codeStyleConfig.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/app/libs/animation-release.aar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/libs/animation-release.aar
--------------------------------------------------------------------------------
/app/libs/appcompat-release.aar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/libs/appcompat-release.aar
--------------------------------------------------------------------------------
/app/libs/core-release.aar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/libs/core-release.aar
--------------------------------------------------------------------------------
/app/libs/haptic-release.aar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/libs/haptic-release.aar
--------------------------------------------------------------------------------
/app/libs/hyperceiler_expansion_packs-debug.aar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/libs/hyperceiler_expansion_packs-debug.aar
--------------------------------------------------------------------------------
/app/libs/miui-framework.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/libs/miui-framework.jar
--------------------------------------------------------------------------------
/app/libs/miui.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/libs/miui.jar
--------------------------------------------------------------------------------
/app/libs/preference-release.aar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/libs/preference-release.aar
--------------------------------------------------------------------------------
/app/libs/smooth-release.aar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/libs/smooth-release.aar
--------------------------------------------------------------------------------
/app/libs/springback-release.aar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/libs/springback-release.aar
--------------------------------------------------------------------------------
/app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | -keep class com.sevtinge.cemiuiler.XposedInit
2 | -keep class com.sevtinge.cemiuiler.module.app.SystemFrameworkForCorePatch
3 | -keep class moralnorm.**{*;}
4 | -keep class com.sevtinge.cemiuiler.utils.Helpers{boolean isModuleActive;}
5 | -keep class com.sevtinge.cemiuiler.utils.Helpers{int XposedVersion;}
6 | -keep class * extends com.sevtinge.cemiuiler.module.base.BaseHook
7 | -keep class com.sevtinge.cemiuiler.ui.HideAppActivity
8 | -keep class * extends com.sevtinge.cemiuiler.ui.fragment.base.*
9 | -keep class miui.drm.**{*;}
10 | -dontwarn android.app.ActivityTaskManager$RootTaskInfo
11 | -dontwarn miui.app.MiuiFreeFormManager$MiuiFreeFormStackInfo
12 | -dontwarn com.android.internal.view.menu.MenuBuilder
13 | -allowaccessmodification
14 | -overloadaggressively
15 |
--------------------------------------------------------------------------------
/app/src/main/assets/xposed_init:
--------------------------------------------------------------------------------
1 | com.sevtinge.cemiuiler.XposedInit
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/Application.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler;
2 |
3 | import android.content.Context;
4 | import android.os.Build;
5 |
6 | import com.sevtinge.cemiuiler.utils.PrefsUtils;
7 |
8 | public class Application extends android.app.Application {
9 |
10 | @Override
11 | protected void attachBaseContext(Context base) {
12 | PrefsUtils.mSharedPreferences = PrefsUtils.getSharedPrefs(base);
13 | super.attachBaseContext(base);
14 | }
15 |
16 | @Override
17 | public void onCreate() {
18 | super.onCreate();
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/callback/IAppSelectCallback.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.callback;
2 |
3 | public interface IAppSelectCallback {
4 |
5 | void sendMsgToActivity(byte[] appIcon, String appName, String appPackageName, String appVersion, String appActivityName);
6 |
7 | String getMsgFromActivity(String s);
8 | }
9 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/data/AppData.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.data;
2 |
3 | import android.graphics.Bitmap;
4 |
5 | public class AppData {
6 |
7 | public int user = 0;
8 | public Bitmap icon;
9 | public String label;
10 | public String packageName;
11 | public String activityName;
12 | public String versionName;
13 | public String versionCode;
14 | public boolean isSystemApp;
15 | public boolean enabled;
16 | }
17 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/data/ModData.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.data;
2 |
3 | public class ModData {
4 | public String title;
5 | public String breadcrumbs;
6 | public String key;
7 | public ModCat cat;
8 | public String sub;
9 | public int order;
10 | public String fragment;
11 | public int catTitleResId;
12 |
13 | public enum ModCat {
14 | pref_key_system,
15 | pref_key_launcher,
16 | pref_key_controls,
17 | pref_key_various
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/app/AiAsst.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.app;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseModule;
4 | import com.sevtinge.cemiuiler.module.hook.aiasst.AiCaptions;
5 |
6 |
7 | public class AiAsst extends BaseModule {
8 |
9 | @Override
10 | public void handleLoadPackage() {
11 | initHook(new AiCaptions(), mPrefsMap.getBoolean("aiasst_ai_captions"));
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/app/Aod.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.app;
2 |
3 | import com.sevtinge.cemiuiler.module.hook.aod.UnlockAlwaysOnDisplay;
4 | import com.sevtinge.cemiuiler.module.base.BaseModule;
5 |
6 | public class Aod extends BaseModule {
7 | @Override
8 | public void handleLoadPackage() {
9 | initHook(UnlockAlwaysOnDisplay.INSTANCE, mPrefsMap.getBoolean("aod_unlock_always_on_display"));
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/app/Barrage.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.app;
2 |
3 | import com.sevtinge.cemiuiler.module.hook.barrage.*;
4 | import com.sevtinge.cemiuiler.module.base.BaseModule;
5 |
6 | public class Barrage extends BaseModule {
7 | @Override
8 | public void handleLoadPackage() {
9 | initHook(AnyBarrage.INSTANCE, mPrefsMap.getBoolean("barrage_any_barrage"));
10 | initHook(CustomBarrageLength.INSTANCE, mPrefsMap.getInt("barrage_custom_barrage_length", 36) != 36);
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/app/Clock.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.app;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseModule;
4 | import com.sevtinge.cemiuiler.module.hook.clock.EnableHourGlass;
5 |
6 | public class Clock extends BaseModule {
7 |
8 | @Override
9 | public void handleLoadPackage() {
10 | initHook(new EnableHourGlass(), mPrefsMap.getBoolean("clock_enable_hour_glass"));
11 | }
12 | }
13 |
14 |
15 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/app/Creation.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.app;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseModule;
4 | import com.sevtinge.cemiuiler.module.hook.creation.UnlockCreation;
5 | import com.sevtinge.cemiuiler.module.hook.various.UnlockSuperClipboard;
6 |
7 | public class Creation extends BaseModule {
8 |
9 | @Override
10 | public void handleLoadPackage() {
11 | initHook(UnlockCreation.INSTANCE, mPrefsMap.getBoolean("creation_unlock_enable"));
12 | initHook(UnlockSuperClipboard.INSTANCE, mPrefsMap.getBoolean("various_super_clipboard_enable"));
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/app/Downloads.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.app;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseModule;
4 | import com.sevtinge.cemiuiler.module.hook.downloads.FuckXlDownload;
5 |
6 | public class Downloads extends BaseModule {
7 |
8 | @Override
9 | public void handleLoadPackage() {
10 | initHook(new FuckXlDownload(), mPrefsMap.getBoolean("various_fuck_xlDownload"));
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/app/ExternalStorage.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.app;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseModule;
4 | import com.sevtinge.cemiuiler.module.hook.externalstorage.DisableFolderCantUse;
5 |
6 | public class ExternalStorage extends BaseModule {
7 |
8 | @Override
9 | public void handleLoadPackage() {
10 | initHook(new DisableFolderCantUse(), mPrefsMap.getBoolean("various_disable_folder_cantuse"));
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/app/FileExplorer.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.app;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseModule;
4 | import com.sevtinge.cemiuiler.module.hook.fileexplorer.SelectName;
5 | import com.sevtinge.cemiuiler.module.hook.various.UnlockSuperClipboard;
6 |
7 | public class FileExplorer extends BaseModule {
8 |
9 | @Override
10 | public void handleLoadPackage() {
11 | initHook(SelectName.INSTANCE, mPrefsMap.getBoolean("file_explorer_can_selectable") || mPrefsMap.getBoolean("file_explorer_is_single_line"));
12 | initHook(UnlockSuperClipboard.INSTANCE, mPrefsMap.getBoolean("various_super_clipboard_enable"));
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/app/GuardProvider.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.app;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseModule;
4 | import com.sevtinge.cemiuiler.module.base.CloseHostDir;
5 | import com.sevtinge.cemiuiler.module.base.LoadHostDir;
6 | import com.sevtinge.cemiuiler.module.hook.guardprovider.DisableUploadAppListNew;
7 |
8 | public class GuardProvider extends BaseModule {
9 | @Override
10 | public void handleLoadPackage() {
11 | // dexKit load
12 | initHook(LoadHostDir.INSTANCE);
13 | initHook(DisableUploadAppListNew.INSTANCE, mPrefsMap.getBoolean("disable_upload_applist"));
14 | // dexKit finish
15 | initHook(CloseHostDir.INSTANCE);
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/app/InCallUi.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.app;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseModule;
4 | import com.sevtinge.cemiuiler.module.hook.incallui.AnswerInHeadUp;
5 | import com.sevtinge.cemiuiler.module.hook.incallui.HideCrbt;
6 |
7 | public class InCallUi extends BaseModule {
8 |
9 | @Override
10 | public void handleLoadPackage() {
11 | initHook(new HideCrbt(), mPrefsMap.getBoolean("incallui_hide_crbt"));
12 | initHook(new AnswerInHeadUp(), mPrefsMap.getBoolean("incallui_answer_in_head_up"));
13 | }
14 | }
15 |
16 |
17 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/app/Lbe.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.app;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseModule;
4 | import com.sevtinge.cemiuiler.module.hook.lbe.DisableClipboardTip;
5 |
6 | public class Lbe extends BaseModule {
7 |
8 | @Override
9 | public void handleLoadPackage() {
10 | initHook(DisableClipboardTip.INSTANCE, mPrefsMap.getBoolean("lbe_clipboard_tip_toast"));
11 | }
12 | }
13 |
14 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/app/Market.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.app;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseModule;
4 | import com.sevtinge.cemiuiler.module.hook.market.DeviceModify;
5 |
6 | public class Market extends BaseModule {
7 |
8 | @Override
9 | public void handleLoadPackage() {
10 | initHook(new DeviceModify(), mPrefsMap.getStringAsInt("market_device_modify_new", 0) != 0);;
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/app/MiLink.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.app;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseModule;
4 | import com.sevtinge.cemiuiler.module.hook.milink.UnlockMiShare;
5 |
6 | public class MiLink extends BaseModule {
7 |
8 | @Override
9 | public void handleLoadPackage() {
10 | initHook(new UnlockMiShare(), mPrefsMap.getBoolean("milink_unlock_mishare"));
11 | }
12 | }
13 |
14 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/app/MiWallpaper.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.app;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseModule;
4 | import com.sevtinge.cemiuiler.module.hook.miwallpaper.UnlockSuperWallpaper;
5 |
6 | public class MiWallpaper extends BaseModule {
7 |
8 | @Override
9 | public void handleLoadPackage() {
10 | initHook(new UnlockSuperWallpaper(), mPrefsMap.getBoolean("miwallpaper_unlock_super_wallpaper"));
11 | }
12 | }
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/app/Mirror.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.app;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseModule;
4 | import com.sevtinge.cemiuiler.module.hook.mirror.UnlockMiuiPlus;
5 |
6 | public class Mirror extends BaseModule {
7 |
8 | @Override
9 | public void handleLoadPackage() {
10 | initHook(new UnlockMiuiPlus(), mPrefsMap.getBoolean("mirror_unlock_miui_plus"));
11 | }
12 | }
13 |
14 |
15 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/app/Mtb.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.app;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseModule;
4 | import com.sevtinge.cemiuiler.module.hook.mtb.BypassAuthentication;
5 | import com.sevtinge.cemiuiler.module.hook.mtb.IsUserBuild;
6 |
7 | public class Mtb extends BaseModule {
8 | @Override
9 | public void handleLoadPackage() {
10 | initHook(BypassAuthentication.INSTANCE, mPrefsMap.getBoolean("mtb_auth"));
11 | initHook(IsUserBuild.INSTANCE, mPrefsMap.getBoolean("mtb_auth"));
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/app/Music.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.app;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseModule;
4 | import com.sevtinge.cemiuiler.module.hook.music.DisableAd;
5 |
6 | public class Music extends BaseModule {
7 |
8 | @Override
9 | public void handleLoadPackage() {
10 | initHook(new DisableAd(), mPrefsMap.getBoolean("music_disable_ad"));
11 | }
12 | }
13 |
14 |
15 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/app/NetworkBoost.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.app;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseModule;
4 | import com.sevtinge.cemiuiler.module.hook.networkboost.LinkTurboToast;
5 |
6 | public class NetworkBoost extends BaseModule {
7 | @Override
8 | public void handleLoadPackage() {
9 | initHook(new LinkTurboToast(), mPrefsMap.getBoolean("various_disable_link_turbo_toast"));
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/app/Nfc.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.app;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseModule;
4 | import com.sevtinge.cemiuiler.module.hook.nfc.*;
5 |
6 | public class Nfc extends BaseModule {
7 |
8 | @Override
9 | public void handleLoadPackage() {
10 | initHook(new DisableSound(), mPrefsMap.getBoolean("nfc_disable_sound"));
11 | initHook(new AllowInformationScreen(), mPrefsMap.getBoolean("nfc_allow_information_screen"));
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/app/Notes.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.app;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseModule;
4 | import com.sevtinge.cemiuiler.module.hook.various.UnlockSuperClipboard;
5 |
6 | public class Notes extends BaseModule {
7 |
8 | @Override
9 | public void handleLoadPackage() {
10 | initHook(UnlockSuperClipboard.INSTANCE, mPrefsMap.getBoolean("various_super_clipboard_enable"));
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/app/TsmClient.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.app;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseModule;
4 | import com.sevtinge.cemiuiler.module.hook.tsmclient.AutoNfc;
5 |
6 | public class TsmClient extends BaseModule {
7 |
8 | @Override
9 | public void handleLoadPackage() {
10 | initHook(AutoNfc.INSTANCE, mPrefsMap.getBoolean("tsmclient_auto_nfc"));
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/app/VoiceAssist.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.app;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseModule;
4 | import com.sevtinge.cemiuiler.module.base.CloseHostDir;
5 | import com.sevtinge.cemiuiler.module.base.LoadHostDir;
6 | import com.sevtinge.cemiuiler.module.hook.voiceassist.UseThirdPartyBrowser;
7 |
8 | public class VoiceAssist extends BaseModule {
9 |
10 | @Override
11 | public void handleLoadPackage() {
12 | // dexKit load
13 | initHook(LoadHostDir.INSTANCE);
14 | initHook(UseThirdPartyBrowser.INSTANCE, mPrefsMap.getBoolean("content_extension_browser"));
15 | // dexKit finish
16 | initHook(CloseHostDir.INSTANCE);
17 | }
18 | }
19 |
20 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/app/Weather.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.app;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseModule;
4 | import com.sevtinge.cemiuiler.module.hook.weather.SetDeviceLevel;
5 |
6 | public class Weather extends BaseModule {
7 |
8 | @Override
9 | public void handleLoadPackage() {
10 | initHook(new SetDeviceLevel(), mPrefsMap.getStringAsInt("weather_device_level", 0) != 3);
11 | }
12 | }
13 |
14 |
15 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/base/HostDir.kt:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.base
2 |
3 | import com.sevtinge.cemiuiler.utils.DexKit.closeDexKit
4 | import com.sevtinge.cemiuiler.utils.DexKit.initDexKit
5 |
6 | object LoadHostDir : BaseHook() {
7 | override fun init() {
8 | if (lpparam != null) {
9 | initDexKit(lpparam)
10 | }
11 | }
12 | }
13 |
14 |
15 | object CloseHostDir : BaseHook() {
16 | override fun init() {
17 | if (lpparam != null) {
18 | closeDexKit()
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/base/IXposedHook.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.base;
2 |
3 | public interface IXposedHook {
4 |
5 | void initZygote();
6 |
7 | void handleLoadPackage();
8 | }
9 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/aod/UnlockAlwaysOnDisplay.kt:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.aod
2 |
3 | import com.github.kyuubiran.ezxhelper.ClassUtils.loadClass
4 | import com.github.kyuubiran.ezxhelper.HookFactory.`-Static`.createHook
5 | import com.github.kyuubiran.ezxhelper.finders.MethodFinder.`-Static`.methodFinder
6 | import com.sevtinge.cemiuiler.module.base.BaseHook
7 |
8 | object UnlockAlwaysOnDisplay : BaseHook() {
9 | override fun init() {
10 | loadClass("com.miui.aod.widget.AODSettings").methodFinder().first {
11 | name == "onlySupportKeycodeGoto"
12 | }.createHook {
13 | returnConstant(false)
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/EnableLabOptions.kt:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.camera
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook
4 | import com.sevtinge.cemiuiler.utils.hookBeforeMethod
5 | import com.sevtinge.cemiuiler.utils.log.XposedLogUtils
6 |
7 | object EnableLabOptions : BaseHook() {
8 | override fun init() {
9 | try {
10 | "com.xiaomi.camera.util.SystemProperties".hookBeforeMethod(
11 | "getBoolean", String::class.java, Boolean::class.java
12 | ) {
13 | if (it.args[0] == "camera.lab.options") it.result = true
14 | }
15 | } catch (e: Exception) {
16 | XposedLogUtils.logE(TAG, e)
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/Unlock120Fps.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.camera;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | public class Unlock120Fps extends BaseHook {
6 | @Override
7 | public void init() {
8 | hookAllMethods("com.android.camera2.CameraCapabilitiesUtil", "isSupported4K120Fps", new BaseHook.MethodHook() {
9 | @Override
10 | protected void before(MethodHookParam param) throws Throwable {
11 | param.setResult(true);
12 | }
13 | });
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/Unlock60Fps.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.camera;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | public class Unlock60Fps extends BaseHook {
6 | @Override
7 | public void init() {
8 | hookAllMethods("com.android.camera.data.data.config.ComponentConfigVideoQuality", "isSupport60FPS", new BaseHook.MethodHook() {
9 | @Override
10 | protected void before(MethodHookParam param) throws Throwable {
11 | param.setResult(true);
12 | }
13 | });
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockAiWatermark.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.camera;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | public class UnlockAiWatermark extends BaseHook {
6 | @Override
7 | public void init() {
8 | findAndHookMethod("com.android.camera.features.mode.aiwatermark.AIWaterModuleEntry", "support", new MethodHook() {
9 | @Override
10 | protected void before(MethodHookParam param) throws Throwable {
11 | param.setResult(true);
12 | }
13 | });
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockAmbilight.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.camera;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | public class UnlockAmbilight extends BaseHook {
6 | @Override
7 | public void init() {
8 | findAndHookMethod("com.android.camera.features.mode.ambilight.AmbilightModuleEntry", "support", new BaseHook.MethodHook() {
9 | @Override
10 | protected void before(MethodHookParam param) throws Throwable {
11 | param.setResult(true);
12 | }
13 | });
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockAudioZoom.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.camera;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | public class UnlockAudioZoom extends BaseHook {
6 | @Override
7 | public void init() {
8 | hookAllMethods("com.android.camera.aiaudio.AiAudioParameterManager", "isSupportAiAudioNew", new BaseHook.MethodHook() {
9 | @Override
10 | protected void before(MethodHookParam param) throws Throwable {
11 | param.setResult(true);
12 | }
13 | });
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockCosmeticMirror.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.camera;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | public class UnlockCosmeticMirror extends BaseHook {
6 | @Override
7 | public void init() {
8 | findAndHookMethod("com.android.camera.features.mode.cosmeticmirror.CosmeticMirrorModuleEntry", "support", new BaseHook.MethodHook() {
9 | @Override
10 | protected void before(MethodHookParam param) throws Throwable {
11 | param.setResult(true);
12 | }
13 | });
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockDoc.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.camera;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | public class UnlockDoc extends BaseHook {
6 | @Override
7 | public void init() {
8 | findAndHookMethod("com.android.camera.features.mode.doc.DocModuleEntry", "support", new BaseHook.MethodHook() {
9 | @Override
10 | protected void before(MethodHookParam param) throws Throwable {
11 | param.setResult(true);
12 | }
13 | });
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockDualcam.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.camera;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | public class UnlockDualcam extends BaseHook {
6 | @Override
7 | public void init() {
8 | findAndHookMethod("com.android.camera.features.mode.dualcam.DualCamModuleEntry", "support", new BaseHook.MethodHook() {
9 | @Override
10 | protected void before(MethodHookParam param) throws Throwable {
11 | param.setResult(true);
12 | }
13 | });
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockDuration.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.camera;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | public class UnlockDuration extends BaseHook {
6 | @Override
7 | public void init() {
8 | findAndHookMethod("com.android.camera.features.mode.fast.FastMotionModuleEntry", "support", new BaseHook.MethodHook() {
9 | @Override
10 | protected void before(MethodHookParam param) throws Throwable {
11 | param.setResult(true);
12 | }
13 | });
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockFilm.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.camera;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | public class UnlockFilm extends BaseHook {
6 | @Override
7 | public void init() {
8 | findAndHookMethod("com.android.camera.features.mode.more.film.MoreFilmModuleEntry", "support", new BaseHook.MethodHook() {
9 | @Override
10 | protected void before(MethodHookParam param) throws Throwable {
11 | param.setResult(true);
12 | }
13 | });
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockFilmDelay.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.camera;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | public class UnlockFilmDelay extends BaseHook {
6 | @Override
7 | public void init() {
8 | findAndHookMethod("com.android.camera.features.mode.film.delay.LongExpModuleEntry", "support", new BaseHook.MethodHook() {
9 | @Override
10 | protected void before(MethodHookParam param) throws Throwable {
11 | param.setResult(true);
12 | }
13 | });
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockFilmDollyZoom.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.camera;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | public class UnlockFilmDollyZoom extends BaseHook {
6 | @Override
7 | public void init() {
8 | findAndHookMethod("com.android.camera.features.mode.film.dollyzoom.DollyZoomModuleEntry", "support", new BaseHook.MethodHook() {
9 | @Override
10 | protected void before(MethodHookParam param) throws Throwable {
11 | param.setResult(true);
12 | }
13 | });
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockFilmDream.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.camera;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | public class UnlockFilmDream extends BaseHook {
6 | @Override
7 | public void init() {
8 | findAndHookMethod("com.android.camera.features.mode.film.dream.DreamModuleEntry", "support", new BaseHook.MethodHook() {
9 | @Override
10 | protected void before(MethodHookParam param) throws Throwable {
11 | param.setResult(true);
12 | }
13 | });
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockFilmSlowShutter.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.camera;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | public class UnlockFilmSlowShutter extends BaseHook {
6 | @Override
7 | public void init() {
8 | findAndHookMethod("com.android.camera.features.mode.film.slowshutter.SlowShutterModuleEntry", "support", new BaseHook.MethodHook() {
9 | @Override
10 | protected void before(MethodHookParam param) throws Throwable {
11 | param.setResult(true);
12 | }
13 | });
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockFilmTimeBackflow.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.camera;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | public class UnlockFilmTimeBackflow extends BaseHook {
6 | @Override
7 | public void init() {
8 | findAndHookMethod("com.android.camera.features.mode.film.timebackflow.TimeBackflowModuleEntry", "support", new BaseHook.MethodHook() {
9 | @Override
10 | protected void before(MethodHookParam param) throws Throwable {
11 | param.setResult(true);
12 | }
13 | });
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockFilmTimeFreeze.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.camera;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | public class UnlockFilmTimeFreeze extends BaseHook {
6 | @Override
7 | public void init() {
8 | findAndHookMethod("com.android.camera.features.mode.film.timefreeze.TimeFreezeModuleEntry", "support", new BaseHook.MethodHook() {
9 | @Override
10 | protected void before(MethodHookParam param) throws Throwable {
11 | param.setResult(true);
12 | }
13 | });
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockHandGesture.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.camera;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | public class UnlockHandGesture extends BaseHook {
6 | @Override
7 | public void init() {
8 | findAndHookMethod("com.android.camera.data.data.runing.DataItemRunning", "supportHandGesture", new BaseHook.MethodHook() {
9 | @Override
10 | protected void before(MethodHookParam param) throws Throwable {
11 | param.setResult(true);
12 | }
13 | });
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockIdcard.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.camera;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | public class UnlockIdcard extends BaseHook {
6 | @Override
7 | public void init() {
8 | findAndHookMethod("com.android.camera.features.mode.idcard.IDCardModuleEntry", "support", new BaseHook.MethodHook() {
9 | @Override
10 | protected void before(MethodHookParam param) throws Throwable {
11 | param.setResult(true);
12 | }
13 | });
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockMilive.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.camera;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | public class UnlockMilive extends BaseHook {
6 | @Override
7 | public void init() {
8 | findAndHookMethod("com.android.camera.features.mode.milive.MiLiveModuleEntry", "support", new BaseHook.MethodHook() {
9 | @Override
10 | protected void before(MethodHookParam param) throws Throwable {
11 | param.setResult(true);
12 | }
13 | });
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockMoon.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.camera;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | public class UnlockMoon extends BaseHook {
6 | @Override
7 | public void init() {
8 | findAndHookMethod("com.android.camera.features.mode.moon.MoonModuleEntry", "support", new BaseHook.MethodHook() {
9 | @Override
10 | protected void before(MethodHookParam param) throws Throwable {
11 | param.setResult(true);
12 | }
13 | });
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockPano.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.camera;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | public class UnlockPano extends BaseHook {
6 | @Override
7 | public void init() {
8 | findAndHookMethod("com.android.camera.features.mode.pano.pano3.PanoModuleEntry", "support", new BaseHook.MethodHook() {
9 | @Override
10 | protected void before(MethodHookParam param) throws Throwable {
11 | param.setResult(true);
12 | }
13 | });
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockPixel.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.camera;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | public class UnlockPixel extends BaseHook {
6 | @Override
7 | public void init() {
8 | findAndHookMethod("com.android.camera.features.mode.pixel.PixelModuleEntry", "support", new BaseHook.MethodHook() {
9 | @Override
10 | protected void before(MethodHookParam param) throws Throwable {
11 | param.setResult(true);
12 | }
13 | });
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockPortrait.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.camera;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | public class UnlockPortrait extends BaseHook {
6 | @Override
7 | public void init() {
8 | findAndHookMethod("com.android.camera.features.mode.portrait.PortraitModuleEntry", "support", new BaseHook.MethodHook() {
9 | @Override
10 | protected void before(MethodHookParam param) throws Throwable {
11 | param.setResult(true);
12 | }
13 | });
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockSlow.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.camera;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | public class UnlockSlow extends BaseHook {
6 | @Override
7 | public void init() {
8 | findAndHookMethod("com.android.camera.features.mode.slow.SlowMotionModuleEntry", "support", new BaseHook.MethodHook() {
9 | @Override
10 | protected void before(MethodHookParam param) throws Throwable {
11 | param.setResult(true);
12 | }
13 | });
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/camera/UnlockVideosky.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.camera;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | public class UnlockVideosky extends BaseHook {
6 | @Override
7 | public void init() {
8 | findAndHookMethod("com.android.camera.features.mode.videosky.VideoSkyModuleEntry", "support", new BaseHook.MethodHook() {
9 | @Override
10 | protected void before(MethodHookParam param) throws Throwable {
11 | param.setResult(true);
12 | }
13 | });
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/contentextension/DoublePress.kt:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.contentextension
2 |
3 | import android.content.Context
4 | import com.github.kyuubiran.ezxhelper.ClassUtils.loadClass
5 | import com.github.kyuubiran.ezxhelper.HookFactory.`-Static`.createHook
6 | import com.github.kyuubiran.ezxhelper.finders.MethodFinder.`-Static`.methodFinder
7 | import com.sevtinge.cemiuiler.module.base.BaseHook
8 |
9 | class DoublePress : BaseHook() {
10 | override fun init() {
11 | loadClass("com.miui.contentextension.utils.ContentCatcherUtil").methodFinder().first {
12 | name == "isCatcherSupportDoublePress" &&
13 | parameterTypes[0] == Context::class.java
14 | }.createHook {
15 | returnConstant(true)
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/contentextension/HorizontalContentExtension.kt:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.contentextension
2 |
3 | import com.github.kyuubiran.ezxhelper.ClassUtils.loadClass
4 | import com.github.kyuubiran.ezxhelper.HookFactory.`-Static`.createHook
5 | import com.github.kyuubiran.ezxhelper.finders.MethodFinder.`-Static`.methodFinder
6 | import com.sevtinge.cemiuiler.module.base.BaseHook
7 |
8 | object HorizontalContentExtension : BaseHook() {
9 | override fun init() {
10 | loadClass("com.miui.contentextension.services.TextContentExtensionService").methodFinder()
11 | .first {
12 | name == "isScreenPortrait"
13 | }.createHook {
14 | after {
15 | it.result = true
16 | }
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/creation/UnlockCreation.kt:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.creation
2 |
3 | import com.github.kyuubiran.ezxhelper.ClassUtils.setStaticObject
4 | import com.sevtinge.cemiuiler.module.base.BaseHook
5 | import com.sevtinge.cemiuiler.utils.api.LazyClass.clazzMiuiBuild
6 |
7 | object UnlockCreation : BaseHook() {
8 | override fun init() {
9 | setStaticObject(clazzMiuiBuild, "IS_TABLET", true)
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/externalstorage/DisableFolderCantUse.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.externalstorage;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | public class DisableFolderCantUse extends BaseHook {
6 | @Override
7 | public void init() {
8 | findAndHookMethod("com.android.externalstorage.ExternalStorageProvider", "shouldBlockFromTree", String.class, new MethodHook() {
9 | @Override
10 | protected void before(MethodHookParam param) {
11 | param.setResult(false);
12 | }
13 | });
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/gallery/EnableHdrEnhance.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.gallery;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | import de.robv.android.xposed.XC_MethodHook;
6 |
7 | public class EnableHdrEnhance extends BaseHook {
8 | @Override
9 | public void init() {
10 | findAndHookMethod("com.miui.gallery.domain.DeviceFeature", "isSupportHDREnhance", new BaseHook.MethodHook() {
11 | @Override
12 | protected void before(XC_MethodHook.MethodHookParam param) throws Throwable {
13 | param.setResult(true);
14 | }
15 | });
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/gallery/EnableMagicMatting.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.gallery;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | import de.robv.android.xposed.XC_MethodHook;
6 |
7 | public class EnableMagicMatting extends BaseHook {
8 | @Override
9 | public void init() {
10 | findAndHookMethod("com.miui.mediaeditor.api.MediaEditorApiHelper", "isMagicMattingAvailable", new BaseHook.MethodHook() {
11 | @Override
12 | protected void before(XC_MethodHook.MethodHookParam param) throws Throwable {
13 | param.setResult(true);
14 | }
15 | });
16 | }
17 | }
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/gallery/EnableMagicSky.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.gallery;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | import de.robv.android.xposed.XC_MethodHook;
6 |
7 | public class EnableMagicSky extends BaseHook {
8 | @Override
9 | public void init() {
10 | findAndHookMethod("com.miui.gallery.util.FilterSkyEntranceUtils", "showSingleFilterSky", new BaseHook.MethodHook() {
11 | @Override
12 | protected void before(XC_MethodHook.MethodHookParam param) throws Throwable {
13 | param.setResult(true);
14 | }
15 | });
16 | }
17 | }
18 |
19 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/gallery/EnableOcrForm.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.gallery;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | import de.robv.android.xposed.XC_MethodHook;
6 |
7 | public class EnableOcrForm extends BaseHook {
8 | @Override
9 | public void init() {
10 | findAndHookMethod("com.miui.gallery.util.RecognizeFormUtil", "isAvailable", new BaseHook.MethodHook() {
11 | @Override
12 | protected void before(XC_MethodHook.MethodHookParam param) throws Throwable {
13 | param.setResult(true);
14 | }
15 | });
16 | }
17 | }
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/gallery/EnablePdf.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.gallery;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | import de.robv.android.xposed.XC_MethodHook;
6 |
7 | public class EnablePdf extends BaseHook {
8 | @Override
9 | public void init() {
10 | findAndHookMethod("com.miui.gallery.request.PicToPdfHelper", "isPicToPdfSupport", new BaseHook.MethodHook() {
11 | @Override
12 | protected void before(XC_MethodHook.MethodHookParam param) throws Throwable {
13 | param.setResult(true);
14 | }
15 | });
16 | }
17 | }
18 |
19 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/gallery/EnableRemover2.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.gallery;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | import de.robv.android.xposed.XC_MethodHook;
6 |
7 | public class EnableRemover2 extends BaseHook {
8 | @Override
9 | public void init() {
10 | findAndHookMethod("com.miui.gallery.editor.photo.app.remover2.sdk.Remover2CheckHelper", "isRemover2Support", new BaseHook.MethodHook() {
11 | @Override
12 | protected void before(XC_MethodHook.MethodHookParam param) throws Throwable {
13 | param.setResult(true);
14 | }
15 | });
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/gallery/EnableTextYanhua.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.gallery;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | import de.robv.android.xposed.XC_MethodHook;
6 |
7 | public class EnableTextYanhua extends BaseHook {
8 | @Override
9 | public void init() {
10 | findAndHookMethod("com.miui.gallery.domain.SkyCheckHelper", "isSupportTextYanhua", new BaseHook.MethodHook() {
11 | @Override
12 | protected void before(XC_MethodHook.MethodHookParam param) throws Throwable {
13 | param.setResult(true);
14 | }
15 | });
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/gallery/EnableVideoPost.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.gallery;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | import de.robv.android.xposed.XC_MethodHook;
6 |
7 | public class EnableVideoPost extends BaseHook {
8 | @Override
9 | public void init() {
10 | findAndHookMethod("com.miui.mediaeditor.api.MediaEditorApiHelper", "isVideoPostAvailable", new BaseHook.MethodHook() {
11 | @Override
12 | protected void before(XC_MethodHook.MethodHookParam param) throws Throwable {
13 | param.setResult(true);
14 | }
15 | });
16 | }
17 | }
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/UnlockHotseatIcon.kt:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.home
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook
4 | import com.sevtinge.cemiuiler.utils.hookBeforeMethod
5 |
6 | class UnlockHotseatIcon : BaseHook() {
7 | override fun init() {
8 | "com.miui.home.launcher.DeviceConfig".hookBeforeMethod("getHotseatMaxCount") {
9 | it.result = 99
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/dock/DisableRecentsIcon.kt:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.home.dock
2 |
3 | import com.github.kyuubiran.ezxhelper.ClassUtils.loadClass
4 | import com.github.kyuubiran.ezxhelper.HookFactory.`-Static`.createHook
5 | import com.github.kyuubiran.ezxhelper.finders.MethodFinder.`-Static`.methodFinder
6 | import com.sevtinge.cemiuiler.module.base.BaseHook
7 |
8 | object DisableRecentsIcon : BaseHook() {
9 | override fun init() {
10 | loadClass("com.miui.home.launcher.hotseats.HotSeatsListRecentsAppProvider").methodFinder().first {
11 | name == "updateFinalRecommendTasks"
12 | }.createHook {
13 | before { param ->
14 | param.result = true
15 | }
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/dock/ShowDockIconTitle.kt:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.home.dock
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook
4 | import com.sevtinge.cemiuiler.utils.hookBeforeMethod
5 |
6 | object ShowDockIconTitle : BaseHook() {
7 | override fun init() {
8 |
9 | "com.miui.home.launcher.DeviceConfig".hookBeforeMethod("isHotseatsAppTitleHided") {
10 | it.result = false
11 | }
12 |
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/folder/BigFolderIcon.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.home.folder;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | public class BigFolderIcon extends BaseHook {
6 |
7 | Class> mFolderIcon;
8 |
9 | @Override
10 | public void init() {
11 |
12 | mFolderIcon = findClassIfExists("com.miui.home.launcher.folder.FolderIcon2x2_4");
13 |
14 | findAndHookMethod(mFolderIcon, "getPreviewCount", new MethodHook() {
15 | @Override
16 | protected void before(MethodHookParam param) throws Throwable {
17 | param.setResult(5);
18 | }
19 | });
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/gesture/QuickBack.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.home.gesture;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | public class QuickBack extends BaseHook {
6 | @Override
7 | public void init() {
8 | findAndHookMethod("com.miui.home.recents.GestureStubView",
9 | "isDisableQuickSwitch", new MethodHook() {
10 | @Override
11 | protected void before(MethodHookParam param) {
12 | param.setResult(false);
13 | }
14 | }
15 | );
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/layout/ShowClock.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.home.layout;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | import de.robv.android.xposed.XC_MethodReplacement;
6 |
7 | public class ShowClock extends BaseHook {
8 |
9 | @Override
10 | public void init() {
11 | findAndHookMethod("com.miui.home.launcher.Workspace", "isScreenHasClockGadget", long.class, XC_MethodReplacement.returnConstant(false));
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/layout/UnlockGridsNoWord.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.home.layout;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | import de.robv.android.xposed.XC_MethodReplacement;
6 |
7 | public class UnlockGridsNoWord extends BaseHook {
8 |
9 | Class> mDeviceConfig;
10 |
11 | @Override
12 | public void init() {
13 | mDeviceConfig = findClassIfExists("com.miui.home.launcher.DeviceConfig");
14 |
15 | findAndHookMethod(mDeviceConfig, "isThemeCoverCellConfig", XC_MethodReplacement.returnConstant(true));
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/other/BlurRadius.kt:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.home.other
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook
4 | import com.sevtinge.cemiuiler.utils.findClass
5 | import com.sevtinge.cemiuiler.utils.hookBeforeAllMethods
6 |
7 | object BlurRadius : BaseHook() {
8 | override fun init() {
9 |
10 | val value = mPrefsMap.getInt("home_other_blur_radius", 100).toFloat() / 100
11 | if (value == 1f) return
12 | val blurUtilsClass = "com.miui.home.launcher.common.BlurUtils".findClass()
13 | blurUtilsClass.hookBeforeAllMethods("fastBlur") {
14 | it.args[0] = it.args[0] as Float * value
15 | }
16 |
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/other/FixAndroidRS.kt:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.home.other
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook
4 | import de.robv.android.xposed.XC_MethodReplacement
5 | import de.robv.android.xposed.XposedHelpers
6 |
7 | object FixAndroidRS : BaseHook() {
8 | override fun init() {
9 | val globalSearchUtilClass = "com.miui.home.launcher.GlobalSearchUtil"
10 | XposedHelpers.findAndHookMethod(globalSearchUtilClass, lpparam.classLoader,
11 | "isSupportPullDownSearch", object : XC_MethodReplacement() {
12 | override fun replaceHookedMethod(param: MethodHookParam?): Any {
13 | return false
14 | }
15 | })
16 |
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/other/OverlapMode.kt:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.home.other
2 |
3 | import com.github.kyuubiran.ezxhelper.ClassUtils.loadClass
4 | import com.github.kyuubiran.ezxhelper.HookFactory.`-Static`.createHook
5 | import com.github.kyuubiran.ezxhelper.finders.MethodFinder.`-Static`.methodFinder
6 | import com.sevtinge.cemiuiler.module.base.BaseHook
7 |
8 | class OverlapMode : BaseHook() {
9 | override fun init() {
10 | // Fold2 样式负一屏
11 | loadClass("com.miui.home.launcher.overlay.assistant.AssistantDeviceAdapter").methodFinder()
12 | .first {
13 | name == "inOverlapMode"
14 | }.createHook {
15 | returnConstant(true)
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/recent/FreeformCardBackgroundColor.kt:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.home.recent
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook
4 | import com.sevtinge.cemiuiler.utils.findClass
5 | import com.sevtinge.cemiuiler.utils.hookAfterAllConstructors
6 | import com.sevtinge.cemiuiler.utils.setIntField
7 |
8 | object FreeformCardBackgroundColor : BaseHook() {
9 | override fun init() {
10 | val appCardBgColor = mPrefsMap.getInt("home_recent_freeform_background_color", -1)
11 | if (appCardBgColor != -1) {
12 | "com.miui.home.recents.views.TaskViewThumbnail".findClass().hookAfterAllConstructors {
13 | it.thisObject.setIntField("mBgColorForSmallWindow", appCardBgColor)
14 | }
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/recent/MemInfoShow.kt:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.home.recent
2 |
3 | import com.github.kyuubiran.ezxhelper.ClassUtils.loadClass
4 | import com.github.kyuubiran.ezxhelper.HookFactory.`-Static`.createHook
5 | import com.github.kyuubiran.ezxhelper.finders.MethodFinder.`-Static`.methodFinder
6 | import com.sevtinge.cemiuiler.module.base.BaseHook
7 |
8 | object MemInfoShow : BaseHook() {
9 | override fun init() {
10 | loadClass("com.miui.home.recents.views.RecentsDecorations").methodFinder().first {
11 | name == "canTxtMemInfoShow"
12 | }.createHook {
13 | before { param ->
14 | param.result = true
15 | }
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/recent/RemoveIcon.kt:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.home.recent
2 |
3 | import android.view.View
4 | import android.widget.ImageView
5 | import com.sevtinge.cemiuiler.module.base.BaseHook
6 | import com.sevtinge.cemiuiler.utils.getObjectField
7 | import com.sevtinge.cemiuiler.utils.hookAfterMethod
8 |
9 | object RemoveIcon : BaseHook() {
10 | override fun init() {
11 | if (mPrefsMap.getBoolean("home_recent_remove_icon")) {
12 | "com.miui.home.recents.views.TaskViewHeader".hookAfterMethod(
13 | "onFinishInflate"
14 | ) {
15 | val mImage = it.thisObject.getObjectField("mIconView") as ImageView
16 | mImage.visibility = View.GONE
17 | }
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/title/DisableHideTheme.kt:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.home.title
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook
4 | import com.sevtinge.cemiuiler.utils.api.IS_TABLET
5 |
6 | object DisableHideTheme: BaseHook() {
7 | override fun init() {
8 | if (!IS_TABLET) return
9 |
10 | hookAllMethods("com.miui.home.launcher.DeviceConfig", "needHideThemeManager",
11 | object : MethodHook() {
12 | override fun before(param: MethodHookParam) {
13 | param.result = false
14 | }
15 | }
16 | )
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/title/EnableIconMonoChrome.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.home.title;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | public class EnableIconMonoChrome extends BaseHook {
6 | @Override
7 | public void init() {
8 | findAndHookMethod("com.miui.home.launcher.graphics.MonochromeUtils", "isSupportMonochrome", new MethodHook() {
9 | @Override
10 | protected void before(MethodHookParam param) throws Throwable {
11 | param.setResult(true);
12 | }
13 | });
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/title/HiddenAllTitle.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.home.title;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | public class HiddenAllTitle extends BaseHook {
6 | @Override
7 | public void init() {
8 | /*用于隐藏应用名*/
9 | findAndHookMethod("com.miui.home.launcher.ItemIcon", "setTitle",
10 | CharSequence.class, new MethodHook() {
11 | @Override
12 | protected void before(MethodHookParam param) {
13 | param.setResult(null);
14 | }
15 | }
16 | );
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/title/NewInstallIndicator.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.home.title;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | public class NewInstallIndicator extends BaseHook {
6 | @Override
7 | public void init() {
8 | findAndHookMethod("com.miui.home.launcher.TitleTextView",
9 | "updateNewInstallIndicator",
10 | boolean.class, new MethodHook() {
11 | @Override
12 | protected void before(MethodHookParam param) {
13 | param.setResult(null);
14 | }
15 | }
16 | );
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/home/title/PerfectIcon.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.home.title;
2 |
3 | import android.content.pm.LauncherActivityInfo;
4 |
5 | import com.sevtinge.cemiuiler.module.base.BaseHook;
6 |
7 | public class PerfectIcon extends BaseHook {
8 |
9 | @Override
10 | public void init() {
11 | findAndHookMethod("com.miui.home.library.compat.LauncherActivityInfoCompat", "getIconResource", LauncherActivityInfo.class, new MethodHook() {
12 | @Override
13 | protected void before(MethodHookParam param) throws Throwable {
14 | param.setResult(0);
15 | }
16 | });
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/joyose/DisableCloudControl.kt:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.joyose
2 |
3 | import com.github.kyuubiran.ezxhelper.HookFactory.`-Static`.createHook
4 | import com.sevtinge.cemiuiler.module.base.BaseHook
5 | import com.sevtinge.cemiuiler.utils.DexKit.addUsingStringsEquals
6 | import com.sevtinge.cemiuiler.utils.DexKit.dexKitBridge
7 |
8 | object DisableCloudControl : BaseHook() {
9 | override fun init() {
10 | dexKitBridge.findMethod {
11 | matcher {
12 | addUsingStringsEquals("job exist, sync local...")
13 | returnType = "void"
14 | }
15 | }.firstOrNull()?.getMethodInstance(lpparam.classLoader)?.createHook {
16 | returnConstant(null)
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/joyose/EnableGpuTuner.kt:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.joyose
2 |
3 | import com.github.kyuubiran.ezxhelper.HookFactory.`-Static`.createHook
4 | import com.sevtinge.cemiuiler.module.base.BaseHook
5 | import com.sevtinge.cemiuiler.utils.DexKit.addUsingStringsEquals
6 | import com.sevtinge.cemiuiler.utils.DexKit.dexKitBridge
7 |
8 |
9 | object EnableGpuTuner : BaseHook() {
10 | override fun init() {
11 | dexKitBridge.findMethod {
12 | matcher {
13 | addUsingStringsEquals("GPUTUNER_SWITCH")
14 | returnType = "boolean"
15 | }
16 | }.firstOrNull()?.getMethodInstance(lpparam.classLoader)?.createHook {
17 | returnConstant(true)
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/milink/UnlockMiShare.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.milink;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | import de.robv.android.xposed.XC_MethodHook;
6 |
7 | public class UnlockMiShare extends BaseHook {
8 | @Override
9 | public void init() {
10 | hookAllMethods("com.miui.circulate.world.auth.AuthUtil", "doPermissionCheck", new MethodHook() {
11 | @Override
12 | protected void before(XC_MethodHook.MethodHookParam param) {
13 | param.setResult(null);
14 | }
15 | });
16 | }
17 | }
18 |
19 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/mirror/UnlockMiuiPlus.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.mirror;
2 |
3 | import android.content.Context;
4 |
5 | import com.sevtinge.cemiuiler.module.base.BaseHook;
6 |
7 | import de.robv.android.xposed.XC_MethodHook;
8 |
9 | public class UnlockMiuiPlus extends BaseHook {
10 | @Override
11 | public void init() {
12 | findAndHookMethod("com.xiaomi.mirror.utils.SystemUtils", "isModelSupport", Context.class, new BaseHook.MethodHook() {
13 | @Override
14 | protected void before(XC_MethodHook.MethodHookParam param) throws Throwable {
15 | param.setResult(true);
16 | }
17 | });
18 | }
19 | }
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/mtb/IsUserBuild.kt:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.mtb
2 |
3 | import com.github.kyuubiran.ezxhelper.ClassUtils.loadClass
4 | import com.github.kyuubiran.ezxhelper.HookFactory.`-Static`.createHook
5 | import com.github.kyuubiran.ezxhelper.finders.MethodFinder.`-Static`.methodFinder
6 | import com.sevtinge.cemiuiler.module.base.BaseHook
7 |
8 | object IsUserBuild : BaseHook() {
9 | override fun init() {
10 | loadClass("com.xiaomi.mtb.MtbUtils").methodFinder().first {
11 | name == "IsUserBuild"
12 | }.createHook {
13 | returnConstant(false)
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/networkboost/LinkTurboToast.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.networkboost;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | public class LinkTurboToast extends BaseHook {
6 | @Override
7 | public void init() {
8 | findAndHookMethod("com.xiaomi.NetworkBoost.slaservice.SLAToast",
9 | "setLinkTurboStatus", boolean.class, new MethodHook() {
10 | @Override
11 | protected void before(MethodHookParam param) {
12 | param.args[0] = false;
13 | }
14 | }
15 | );
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/nfc/AllowInformationScreen.kt:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.nfc
2 |
3 | import com.github.kyuubiran.ezxhelper.ClassUtils.loadClass
4 | import com.github.kyuubiran.ezxhelper.HookFactory.`-Static`.createHook
5 | import com.github.kyuubiran.ezxhelper.finders.MethodFinder.`-Static`.methodFinder
6 | import com.sevtinge.cemiuiler.module.base.BaseHook
7 |
8 | class AllowInformationScreen : BaseHook() {
9 | override fun init() {
10 | loadClass("com.android.nfc.NfcService").methodFinder().filterByName("sendMessage").first().createHook {
11 | before {
12 | if (it.args[1] == 2 || it.args[1] == 4) {
13 | it.args[1] = 8
14 | }
15 | }
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/nfc/DisableSound.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.nfc;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | public class DisableSound extends BaseHook {
6 | @Override
7 | public void init() {
8 | findAndHookMethod("com.android.nfc.NfcService",
9 | "initSoundPool", new MethodHook() {
10 | @Override
11 | protected void before(MethodHookParam param) {
12 | param.setResult(null);
13 | }
14 | }
15 | );
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/packageinstaller/DisableCountChecking.kt:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.packageinstaller
2 |
3 | import com.github.kyuubiran.ezxhelper.ClassUtils.loadClass
4 | import com.github.kyuubiran.ezxhelper.HookFactory.`-Static`.createHook
5 | import com.github.kyuubiran.ezxhelper.finders.MethodFinder.`-Static`.methodFinder
6 | import com.sevtinge.cemiuiler.module.base.BaseHook
7 |
8 | object DisableCountChecking : BaseHook() {
9 | override fun init() {
10 | loadClass("com.miui.packageInstaller.model.RiskControlRules").methodFinder().first {
11 | name == "getCurrentLevel"
12 | }.createHook {
13 | returnConstant(0)
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/packageinstaller/InstallSource.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.packageinstaller;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | import de.robv.android.xposed.XC_MethodReplacement;
6 |
7 | public class InstallSource extends BaseHook {
8 |
9 | String mInstallSourcePackageName;
10 |
11 | @Override
12 | public void init() {
13 |
14 | mInstallSourcePackageName = mPrefsMap.getString("miui_package_installer_install_source", "com.android.fileexplorer");
15 |
16 | findAndHookMethodSilently("com.miui.packageInstaller.InstallStart",
17 | "getCallingPackage",
18 | XC_MethodReplacement.returnConstant(mInstallSourcePackageName));
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/packageinstaller/SafeMode.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.packageinstaller;
2 |
3 | import android.content.Context;
4 |
5 | import com.sevtinge.cemiuiler.module.base.BaseHook;
6 |
7 | import de.robv.android.xposed.XC_MethodReplacement;
8 |
9 | public class SafeMode extends BaseHook {
10 |
11 | @Override
12 | public void init() {
13 |
14 | findAndHookMethod("com.android.packageinstaller.compat.MiuiSettingsCompat",
15 | "isSafeModelEnable",
16 | Context.class,
17 | XC_MethodReplacement.returnConstant(mPrefsMap.getBoolean("miui_package_installer_safe_mode")));
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/phone/DualNrSupport.kt:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.phone
2 |
3 | import com.github.kyuubiran.ezxhelper.ClassUtils.loadClass
4 | import com.github.kyuubiran.ezxhelper.HookFactory.`-Static`.createHook
5 | import com.github.kyuubiran.ezxhelper.finders.MethodFinder.`-Static`.methodFinder
6 | import com.sevtinge.cemiuiler.module.base.BaseHook
7 |
8 | object DualNrSupport : BaseHook() {
9 | override fun init() {
10 | loadClass("miui.telephony.TelephonyManagerEx").methodFinder().first {
11 | name == "isDualNrSupported"
12 | }.createHook {
13 | returnConstant(true)
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/phone/DualSaSupport.kt:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.phone
2 |
3 | import com.github.kyuubiran.ezxhelper.ClassUtils.loadClass
4 | import com.github.kyuubiran.ezxhelper.HookFactory.`-Static`.createHook
5 | import com.github.kyuubiran.ezxhelper.finders.MethodFinder.`-Static`.methodFinder
6 | import com.sevtinge.cemiuiler.module.base.BaseHook
7 |
8 | object DualSaSupport : BaseHook() {
9 | override fun init() {
10 | loadClass("miui.telephony.TelephonyManagerEx").methodFinder().first {
11 | name == "isDualSaSupported"
12 | }.createHook {
13 | returnConstant(true)
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/phone/N1BandPhone.kt:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.phone
2 |
3 | import com.github.kyuubiran.ezxhelper.ClassUtils.loadClass
4 | import com.github.kyuubiran.ezxhelper.HookFactory.`-Static`.createHook
5 | import com.github.kyuubiran.ezxhelper.finders.MethodFinder.`-Static`.methodFinder
6 | import com.sevtinge.cemiuiler.module.base.BaseHook
7 |
8 | object N1BandPhone : BaseHook() {
9 | override fun init() {
10 | runCatching {
11 | loadClass("miui.telephony.TelephonyManagerEx").methodFinder().first {
12 | name == "isN1Supported"
13 | }.createHook {
14 | returnConstant(true)
15 | }
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/phone/N28BandPhone.kt:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.phone
2 |
3 | import com.github.kyuubiran.ezxhelper.ClassUtils.loadClass
4 | import com.github.kyuubiran.ezxhelper.HookFactory.`-Static`.createHook
5 | import com.github.kyuubiran.ezxhelper.finders.MethodFinder.`-Static`.methodFinder
6 | import com.sevtinge.cemiuiler.module.base.BaseHook
7 |
8 | object N28BandPhone : BaseHook() {
9 | override fun init() {
10 | runCatching {
11 | loadClass("miui.telephony.TelephonyManagerEx").methodFinder().first {
12 | name == "isN28Supported"
13 | }.createHook {
14 | returnConstant(true)
15 | }
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/powerkeeper/DontKillApps.kt:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.powerkeeper
2 |
3 | import com.github.kyuubiran.ezxhelper.ClassUtils.loadClass
4 | import com.github.kyuubiran.ezxhelper.HookFactory.`-Static`.createHook
5 | import com.github.kyuubiran.ezxhelper.finders.MethodFinder.`-Static`.methodFinder
6 | import com.sevtinge.cemiuiler.module.base.BaseHook
7 |
8 | object DontKillApps : BaseHook() {
9 | override fun init() {
10 | loadClass("miui.process.ProcessManager").methodFinder().first {
11 | name == "kill"
12 | }.createHook {
13 | returnConstant(false)
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/powerkeeper/LockMaxFps.kt:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.powerkeeper
2 |
3 | import com.github.kyuubiran.ezxhelper.ClassUtils.loadClass
4 | import com.github.kyuubiran.ezxhelper.HookFactory.`-Static`.createHook
5 | import com.github.kyuubiran.ezxhelper.finders.MethodFinder.`-Static`.methodFinder
6 | import com.sevtinge.cemiuiler.module.base.BaseHook
7 |
8 | object LockMaxFps : BaseHook() {
9 | override fun init() {
10 | loadClass("com.miui.powerkeeper.statemachine.DisplayFrameSetting").methodFinder().first {
11 | name == "setScreenEffect" && parameterCount == 3
12 | }.createHook {
13 | returnConstant(null)
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/powerkeeper/PreventBatteryWitelist.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.powerkeeper;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 | import com.sevtinge.cemiuiler.utils.Helpers;
5 |
6 | public class PreventBatteryWitelist extends BaseHook {
7 | @Override
8 | public void init() {
9 | Helpers.hookAllMethods("com.miui.powerkeeper.utils.CommonAdapter", lpparam.classLoader, "addPowerSaveWhitelistApps", new MethodHook(20000) {
10 | @Override
11 | protected void before(MethodHookParam param) throws Throwable {
12 | param.setResult(null);
13 | }
14 | });
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/scanner/EnableDocPpt.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.scanner;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | public class EnableDocPpt extends BaseHook {
6 | @Override
7 | public void init() {
8 | hookAllMethods("com.xiaomi.scanner.settings.FeatureManager", "isPPTModuleAvailable", new MethodHook() {
9 | @Override
10 | protected void before(MethodHookParam param) throws Throwable {
11 | param.setResult(true);
12 | }
13 | });
14 | }
15 | }
16 |
17 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/scanner/EnableOcr.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.scanner;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | public class EnableOcr extends BaseHook {
6 | @Override
7 | public void init() {
8 | hookAllMethods("com.xiaomi.scanner.settings.FeatureManager", "isAddTextExtractionFunction", new MethodHook() {
9 | @Override
10 | protected void before(MethodHookParam param) throws Throwable {
11 | param.setResult(true);
12 | }
13 | });
14 | }
15 | }
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/scanner/document/EnableDocument.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.scanner.document;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | public class EnableDocument extends BaseHook {
6 | @Override
7 | public void init() {
8 | hookAllMethods("com.xiaomi.scanner.settings.FeatureManager", "isAddDocumentModule", new MethodHook() {
9 | @Override
10 | protected void before(MethodHookParam param) throws Throwable {
11 | param.setResult(true);
12 | }
13 | });
14 | }
15 | }
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/scanner/document/EnablePpt.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.scanner.document;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | public class EnablePpt extends BaseHook {
6 | @Override
7 | public void init() {
8 | hookAllMethods("com.xiaomi.scanner.settings.FeatureManager", "isSupportPpt", new MethodHook() {
9 | @Override
10 | protected void before(MethodHookParam param) throws Throwable {
11 | param.setResult(true);
12 | }
13 | });
14 |
15 | }
16 | }
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/screenrecorder/UnlockMoreVolumeFrom.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.screenrecorder;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | import de.robv.android.xposed.XposedHelpers;
6 |
7 | public class UnlockMoreVolumeFrom extends BaseHook {
8 | @Override
9 | public void init() {
10 | Class> mVolumeFrom = findClassIfExists("w0.a");
11 | findAndHookConstructor("w0.a", new MethodHook() {
12 | @Override
13 | protected void after(MethodHookParam param) throws Throwable {
14 | XposedHelpers.setStaticBooleanField(mVolumeFrom, "h", true);
15 | }
16 | });
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/screenshot/SaveToPictures.kt:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.screenshot
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook
4 | import de.robv.android.xposed.XposedHelpers
5 |
6 | object SaveToPictures : BaseHook() {
7 | override fun init() {
8 | val clazz = XposedHelpers.findClass("android.os.Environment", lpparam.classLoader)
9 | XposedHelpers.setStaticObjectField(clazz, "DIRECTORY_DCIM", "Pictures")
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/securitycenter/IsSbnBelongToActiveBubbleApp.kt:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.securitycenter
2 |
3 | import com.github.kyuubiran.ezxhelper.ClassUtils.loadClass
4 | import com.github.kyuubiran.ezxhelper.HookFactory.`-Static`.createHook
5 | import com.github.kyuubiran.ezxhelper.finders.MethodFinder.`-Static`.methodFinder
6 | import com.sevtinge.cemiuiler.module.base.BaseHook
7 |
8 | object IsSbnBelongToActiveBubbleApp : BaseHook() {
9 | override fun init() {
10 | runCatching {
11 | loadClass("com.miui.bubbles.settings.BubblesSettings").methodFinder().first {
12 | name == "isSbnBelongToActiveBubbleApp"
13 | }.createHook {
14 | returnConstant(true)
15 | }
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/securitycenter/lab/LabUtilsClass.kt:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.securitycenter.lab
2 |
3 | import com.sevtinge.cemiuiler.utils.DexKit.addUsingStringsEquals
4 | import com.sevtinge.cemiuiler.utils.DexKit.dexKitBridge
5 |
6 | object LabUtilsClass {
7 | val labUtilClass by lazy {
8 | dexKitBridge.findClass {
9 | matcher {
10 | addUsingStringsEquals("mi_lab_ai_clipboard_enable", "mi_lab_blur_location_enable")
11 | }
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemframework/AllowUntrustedTouch.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.systemframework;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | import de.robv.android.xposed.XC_MethodReplacement;
6 |
7 | public class AllowUntrustedTouch extends BaseHook {
8 |
9 | Class> mInputManager;
10 |
11 | @Override
12 | public void init() {
13 | mInputManager = findClassIfExists("android.hardware.input.InputManager");
14 | hookAllMethods(mInputManager, "getBlockUntrustedTouchesMode", XC_MethodReplacement.returnConstant(0));// error
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemframework/DeleteOnPostNotification.kt:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.systemframework
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook
4 |
5 | object DeleteOnPostNotification : BaseHook() {
6 |
7 | override fun init() {
8 | findAndHookMethod("com.android.server.wm.AlertWindowNotification", "onPostNotification",
9 | object : MethodHook() {
10 | override fun before(param: MethodHookParam?) {
11 | param?.result = null
12 | }
13 | }
14 | )
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemframework/DisablePinVerifyPer72h.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.systemframework;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | import de.robv.android.xposed.XC_MethodReplacement;
6 |
7 | public class DisablePinVerifyPer72h extends BaseHook {
8 | @Override
9 | public void init() {
10 | findAndHookMethod("com.android.server.locksettings.LockSettingsStrongAuth", "rescheduleStrongAuthTimeoutAlarm", long.class, int.class, XC_MethodReplacement.DO_NOTHING);
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemframework/FreeformBubble.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.systemframework;
2 |
3 | import android.content.Context;
4 |
5 | import com.sevtinge.cemiuiler.module.base.BaseHook;
6 |
7 | import de.robv.android.xposed.XC_MethodReplacement;
8 |
9 | public class FreeformBubble extends BaseHook {
10 |
11 | Class> mMiuiMultiWindowUtils;
12 |
13 | @Override
14 | public void init() {
15 |
16 | mMiuiMultiWindowUtils = findClassIfExists("android.util.MiuiMultiWindowUtils");
17 |
18 | findAndHookMethod(mMiuiMultiWindowUtils, "multiFreeFormSupported", Context.class, XC_MethodReplacement.returnConstant(true));
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemframework/SpeedInstall.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.systemframework;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | public class SpeedInstall extends BaseHook {
6 | @Override
7 | public void init() {
8 | hookAllMethods("android.content.pm.PackageInstaller", "isSupportedSpeedInstallV2", new MethodHook() {
9 | @Override
10 | protected void before(MethodHookParam param) throws Throwable {
11 | param.setResult(true);
12 | }
13 | });
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemframework/UseOriginalAnimation.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.systemframework;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | public class UseOriginalAnimation extends BaseHook {
6 | @Override
7 | public void init() {
8 | hookAllMethods("com.android.server.wm.AppTransitionInjector", "createActivityOpenCloseTransition", new MethodHook() {
9 | @Override
10 | protected void before(MethodHookParam param) throws Throwable {
11 | param.setResult(null);
12 | }
13 | });
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemframework/VolumeDisableSafe.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.systemframework;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | import de.robv.android.xposed.XC_MethodReplacement;
6 |
7 | public class VolumeDisableSafe extends BaseHook {
8 |
9 | Class> mAudioService;
10 |
11 | @Override
12 | public void init() {
13 | mAudioService = findClassIfExists("com.android.server.audio.AudioService");
14 | returnIntConstant(mAudioService, "safeMediaVolumeIndex");
15 | }
16 |
17 | private void returnIntConstant(Class> cls, String methodName) {
18 | hookAllMethods(cls, methodName, XC_MethodReplacement.returnConstant(2147483646));
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemframework/corepatch/BypassSignCheckForT.kt:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.systemframework.corepatch
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook
4 | import com.sevtinge.cemiuiler.utils.log.XposedLogUtils
5 |
6 | object BypassSignCheckForT : BaseHook() {
7 | override fun init() {
8 | try {
9 | hookAllMethods("android.util.apk.ApkSignatureVerifier", "getMinimumSignatureSchemeVersionForTargetSdk", object : MethodHook() {
10 | override fun after(param: MethodHookParam?) {
11 | param?.result = 1
12 | }
13 | })
14 | } catch (e: Throwable) {
15 | XposedLogUtils.logE(TAG, e)
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemframework/display/DisplayCutout.kt:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.systemframework.display
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook
4 |
5 | object DisplayCutout : BaseHook() {
6 | override fun init() {
7 | hookAllMethods("android.view.DisplayCutout", "pathAndDisplayCutoutFromSpec",
8 | object : MethodHook() {
9 | override fun before(param: MethodHookParam) {
10 | param.args[0] = "M 0,0 H 0 V 0 Z"
11 | param.args[1] = ""
12 | }
13 | }
14 | )
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemframework/mipad/SetGestureNeedFingerNum.kt:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.systemframework.mipad
2 |
3 | import com.github.kyuubiran.ezxhelper.ClassUtils.loadClass
4 | import com.github.kyuubiran.ezxhelper.HookFactory.`-Static`.createHook
5 | import com.github.kyuubiran.ezxhelper.finders.MethodFinder.`-Static`.methodFinder
6 | import com.sevtinge.cemiuiler.module.base.BaseHook
7 |
8 | object SetGestureNeedFingerNum : BaseHook() {
9 | override fun init() {
10 | loadClass("com.miui.server.input.gesture.multifingergesture.gesture.BaseMiuiMultiFingerGesture").methodFinder()
11 | .first {
12 | name == "getFunctionNeedFingerNum"
13 | }.createHook {
14 | returnConstant(4)
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemframework/network/DualSASupport.kt:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.systemframework.network
2 |
3 | import com.github.kyuubiran.ezxhelper.ClassUtils.loadClass
4 | import com.github.kyuubiran.ezxhelper.HookFactory.`-Static`.createHook
5 | import com.github.kyuubiran.ezxhelper.finders.MethodFinder.`-Static`.methodFinder
6 | import com.sevtinge.cemiuiler.module.base.BaseHook
7 |
8 | object DualSASupport : BaseHook() {
9 | override fun init() {
10 | runCatching {
11 | loadClass("miui.telephony.TelephonyManagerEx").methodFinder().first {
12 | name == "isDualSaSupported"
13 | }.createHook {
14 | returnConstant(true)
15 | }
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemframework/network/N1Band.kt:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.systemframework.network
2 |
3 | import com.github.kyuubiran.ezxhelper.ClassUtils.loadClass
4 | import com.github.kyuubiran.ezxhelper.HookFactory.`-Static`.createHook
5 | import com.github.kyuubiran.ezxhelper.finders.MethodFinder.`-Static`.methodFinder
6 | import com.sevtinge.cemiuiler.module.base.BaseHook
7 |
8 | object N1Band : BaseHook() {
9 | override fun init() {
10 | runCatching {
11 | loadClass("miui.telephony.TelephonyManagerEx").methodFinder().first {
12 | name == "isN1Supported"
13 | }.createHook {
14 | returnConstant(true)
15 | }
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemframework/network/N28Band.kt:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.systemframework.network
2 |
3 | import com.github.kyuubiran.ezxhelper.ClassUtils.loadClass
4 | import com.github.kyuubiran.ezxhelper.HookFactory.`-Static`.createHook
5 | import com.github.kyuubiran.ezxhelper.finders.MethodFinder.`-Static`.methodFinder
6 | import com.sevtinge.cemiuiler.module.base.BaseHook
7 |
8 | object N28Band : BaseHook() {
9 | override fun init() {
10 | runCatching {
11 | loadClass("miui.telephony.TelephonyManagerEx").methodFinder().first {
12 | name == "isN28Supported"
13 | }.createHook {
14 | returnConstant(true)
15 | }
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemsettings/AddMiuiPlusEntry.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.systemsettings;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | import de.robv.android.xposed.XC_MethodHook;
6 |
7 | public class AddMiuiPlusEntry extends BaseHook {
8 | @Override
9 | public void init() {
10 | findAndHookMethod("com.android.settings.connection.MiMirrorController", "isMirrorSupported", new BaseHook.MethodHook() {
11 | @Override
12 | protected void before(XC_MethodHook.MethodHookParam param) {
13 | param.setResult(true);
14 | }
15 | });
16 | }
17 | }
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemsettings/EnablePadArea.kt:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.systemsettings
2 |
3 | import com.github.kyuubiran.ezxhelper.ClassUtils.setStaticObject
4 | import com.sevtinge.cemiuiler.module.base.BaseHook
5 | import com.sevtinge.cemiuiler.utils.api.LazyClass.SettingsFeaturesClass
6 |
7 | class EnablePadArea : BaseHook() {
8 | override fun init() {
9 | setStaticObject(
10 | SettingsFeaturesClass,
11 | "IS_SUPPORT_TABLET_SCREEN_SETTINGS",
12 | true
13 | )
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemsettings/EnableSpeedMode.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.systemsettings;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | public class EnableSpeedMode extends BaseHook {
6 | @Override
7 | public void init() {
8 | findAndHookMethod("com.android.settings.development.SpeedModeToolsPreferenceController", "getAvailabilityStatus", new MethodHook() {
9 | @Override
10 | protected void before(MethodHookParam param) throws Throwable {
11 | param.setResult(0);
12 | }
13 | });
14 |
15 | }
16 | }
17 |
18 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemsettings/InternationalBuild.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.systemsettings;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | import de.robv.android.xposed.XposedHelpers;
6 | import miui.os.Build;
7 |
8 | public class InternationalBuild extends BaseHook {
9 | @Override
10 | public void init() {
11 | XposedHelpers.setStaticBooleanField(Build.class, "IS_INTERNATIONAL_BUILD", true);
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemsettings/NewNFCPage.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.systemsettings;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | public class NewNFCPage extends BaseHook {
6 | @Override
7 | public void init() {
8 | findAndHookMethod("com.android.settings.utils.SettingsFeatures", "isNeedShowMiuiNFC", new BaseHook.MethodHook() {
9 | @Override
10 | protected void before(MethodHookParam param) throws Throwable {
11 | param.setResult(true);
12 | }
13 | });
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemsettings/NoveltyHaptic.kt:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.systemsettings
2 |
3 | import com.github.kyuubiran.ezxhelper.ClassUtils.loadClass
4 | import com.github.kyuubiran.ezxhelper.HookFactory.`-Static`.createHook
5 | import com.github.kyuubiran.ezxhelper.finders.MethodFinder.`-Static`.methodFinder
6 | import com.sevtinge.cemiuiler.module.base.BaseHook
7 |
8 | object NoveltyHaptic : BaseHook() {
9 | override fun init() {
10 | if (mPrefsMap.getBoolean("system_settings_international_build")) return // 开启国际版设置界面将禁用此功能
11 | loadClass("com.android.settings.utils.SettingsFeatures").methodFinder().first {
12 | name == "isNoveltyHaptic"
13 | }.createHook {
14 | returnConstant(true)
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemsettings/UnLockAreaScreenshot.kt:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.systemsettings
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook
4 |
5 | object UnLockAreaScreenshot : BaseHook() {
6 | override fun init() {
7 | findAndHookMethod(
8 | "com.android.settings.MiuiShortcut\$System", "supportPartialScreenShot",
9 | object : MethodHook() {
10 | override fun before(param: MethodHookParam?) {
11 | param?.result = true
12 | }
13 | })
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemsettings/UnlockTaplusForSettings.kt:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.systemsettings
2 |
3 | import com.github.kyuubiran.ezxhelper.ClassUtils.loadClass
4 | import com.github.kyuubiran.ezxhelper.HookFactory.`-Static`.createHook
5 | import com.github.kyuubiran.ezxhelper.finders.MethodFinder.`-Static`.methodFinder
6 | import com.sevtinge.cemiuiler.module.base.BaseHook
7 |
8 | object UnlockTaplusForSettings : BaseHook() {
9 | override fun init() {
10 | loadClass("com.android.settings.utils.SettingsFeatures").methodFinder().first {
11 | name == "isNeedRemoveContentExtension"
12 | }.createHook {
13 | returnConstant(false)
14 | }
15 |
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemsettings/VoipAssistantController.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.systemsettings;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | public class VoipAssistantController extends BaseHook {
6 | @Override
7 | public void init() {
8 | findAndHookMethod("com.android.settings.lab.MiuiVoipAssistantController", "isNotSupported", new MethodHook() {
9 | @Override
10 | protected void before(MethodHookParam param) throws Throwable {
11 | param.setResult(false);
12 | }
13 | });
14 |
15 | }
16 | }
17 |
18 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemsettings/aiimage/UnlockAi.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.systemsettings.aiimage;
2 |
3 | import android.content.Context;
4 |
5 | import com.sevtinge.cemiuiler.module.base.BaseHook;
6 |
7 | public class UnlockAi extends BaseHook {
8 | @Override
9 | public void init() {
10 | findAndHookMethod("com.android.settings.display.ScreenEnhanceEngineStatusCheck", "isAiSupport", Context.class, new BaseHook.MethodHook() {
11 | @Override
12 | protected void before(MethodHookParam param) {
13 | param.setResult(true);
14 | }
15 | });
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemsettings/aiimage/UnlockMemc.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.systemsettings.aiimage;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | public class UnlockMemc extends BaseHook {
6 | @Override
7 | public void init() {
8 | findAndHookMethod("com.android.settings.display.ScreenEnhanceEngineStatusCheck", "isMemcSupport", new BaseHook.MethodHook() {
9 | @Override
10 | protected void before(MethodHookParam param) {
11 | param.setResult(true);
12 | }
13 | });
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/BluetoothRestrict.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.systemui;
2 |
3 | import android.content.Context;
4 |
5 | import com.sevtinge.cemiuiler.module.base.BaseHook;
6 |
7 | import de.robv.android.xposed.XC_MethodReplacement;
8 |
9 | public class BluetoothRestrict extends BaseHook {
10 |
11 | Class> mLocalBluetoothAdapter;
12 |
13 | @Override
14 | public void init() {
15 | mLocalBluetoothAdapter = findClassIfExists("com.android.settingslib.bluetooth.LocalBluetoothAdapter");
16 |
17 | findAndHookMethod(mLocalBluetoothAdapter,
18 | "isSupportBluetoothRestrict",
19 | Context.class,
20 | XC_MethodReplacement.returnConstant(false));
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/MiuiGxzwSize.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.systemui;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | public class MiuiGxzwSize extends BaseHook {
6 |
7 | @Override
8 | public void init() {
9 |
10 | Class> mMiuiGxzwUtils = findClassIfExists("com.android.keyguard.fod.MiuiGxzwUtils");
11 |
12 | /*hookAllMethods(mMiuiGxzwUtils,"caculateGxzwIconSize", new MethodHook() {
13 | @Override
14 | protected void before(MethodHookParam param) throws Throwable {
15 | XposedHelpers.setStaticIntField(mMiuiGxzwUtils,"GXZW_ANIM_HEIGHT", 1028);
16 | XposedHelpers.setStaticIntField(mMiuiGxzwUtils,"GXZW_ANIM_WIDTH", 1028);
17 | }
18 | });*/
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/NotificationFix.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.systemui;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 |
5 | import de.robv.android.xposed.XposedHelpers;
6 |
7 | public class NotificationFix extends BaseHook {
8 | @Override
9 | public void init() {
10 | XposedHelpers.setStaticBooleanField(XposedHelpers.findClass("com.android.systemui.statusbar.notification.NotificationSettingsManager", lpparam.classLoader), "USE_WHITE_LISTS", false);
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/OriginChargeAnimation.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.systemui;
2 |
3 | import com.sevtinge.cemiuiler.module.base.BaseHook;
4 | import com.sevtinge.cemiuiler.utils.Helpers;
5 |
6 | public class OriginChargeAnimation extends BaseHook {
7 |
8 | Class> mOriginChargeAnimCls;
9 |
10 | @Override
11 | public void init() {
12 |
13 | mOriginChargeAnimCls = findClassIfExists("com.android.systemui.statusbar.FeatureFlags");
14 |
15 | findAndHookMethod(mOriginChargeAnimCls, "isChargingRippleEnabled", new Helpers.MethodHook() {
16 | @Override
17 | protected void after(MethodHookParam param) throws Throwable {
18 | param.setResult(true);
19 | }
20 | });
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/UseNativeRecents.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.systemui;
2 |
3 |
4 | public class UseNativeRecents {
5 |
6 | }
7 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/lockscreen/HideLockscreenZenMode.kt:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.systemui.lockscreen
2 |
3 | import com.github.kyuubiran.ezxhelper.ClassUtils.loadClass
4 | import com.github.kyuubiran.ezxhelper.HookFactory.`-Static`.createHook
5 | import com.github.kyuubiran.ezxhelper.finders.MethodFinder.`-Static`.methodFinder
6 | import com.sevtinge.cemiuiler.module.base.BaseHook
7 |
8 | object HideLockscreenZenMode : BaseHook() {
9 | override fun init() {
10 | loadClass("com.android.systemui.statusbar.notification.zen.ZenModeViewController", lpparam.classLoader)
11 | .methodFinder().first {
12 | name == "shouldBeVisible"
13 | }.createHook {
14 | returnConstant(false)
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/lockscreen/RemoveSmartScreen.kt:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.systemui.lockscreen
2 |
3 | import com.github.kyuubiran.ezxhelper.ClassUtils.loadClass
4 | import com.github.kyuubiran.ezxhelper.HookFactory.`-Static`.createHook
5 | import com.github.kyuubiran.ezxhelper.finders.MethodFinder.`-Static`.methodFinder
6 | import com.sevtinge.cemiuiler.module.base.BaseHook
7 |
8 | object RemoveSmartScreen : BaseHook() {
9 | override fun init() {
10 | loadClass("com.android.keyguard.negative.MiuiKeyguardMoveLeftViewContainer").methodFinder().first {
11 | name == "inflateLeftView"
12 | }.createHook {
13 | before {
14 | it.result = null
15 | }
16 | }
17 | }
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/plugin/EnableVolumeBlur.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.systemui.plugin;
2 |
3 | import de.robv.android.xposed.XC_MethodReplacement;
4 | import de.robv.android.xposed.XposedHelpers;
5 |
6 | public class EnableVolumeBlur {
7 | public static void initEnableVolumeBlur(ClassLoader classLoader) {
8 | XposedHelpers.findAndHookMethod("com.android.systemui.miui.volume.Util", classLoader, "isSupportBlurS", XC_MethodReplacement.returnConstant(true));
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/module/hook/systemui/statusbar/icon/all/HideVoWiFiIcon.kt:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.module.hook.systemui.statusbar.icon.all
2 |
3 | import com.github.kyuubiran.ezxhelper.ClassUtils.loadClass
4 | import com.github.kyuubiran.ezxhelper.HookFactory.`-Static`.createHook
5 | import com.github.kyuubiran.ezxhelper.finders.MethodFinder.`-Static`.methodFinder
6 | import com.sevtinge.cemiuiler.module.base.BaseHook
7 |
8 | object HideVoWiFiIcon : BaseHook() {
9 | override fun init() {
10 | loadClass("com.android.systemui.MiuiOperatorCustomizedPolicy\$MiuiOperatorConfig").methodFinder().first {
11 | name == "getHideVowifi"
12 | }.createHook { returnConstant(true) }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/prefs/PreferenceHeader.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.prefs;
2 |
3 | import android.content.Context;
4 | import android.util.AttributeSet;
5 |
6 | import androidx.annotation.NonNull;
7 | import androidx.annotation.Nullable;
8 |
9 | import com.sevtinge.cemiuiler.R;
10 |
11 | import moralnorm.preference.Preference;
12 |
13 | public class PreferenceHeader extends Preference {
14 |
15 | public PreferenceHeader(@NonNull Context context) {
16 | super(context);
17 | init();
18 | }
19 |
20 | public PreferenceHeader(@NonNull Context context, @Nullable AttributeSet attrs) {
21 | super(context, attrs);
22 | init();
23 | }
24 |
25 | private void init() {
26 | setLayoutResource(R.layout.preference_header);
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/ui/HideAppActivity.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.ui;
2 |
3 | import moralnorm.appcompat.app.AppCompatActivity;
4 |
5 | public class HideAppActivity extends AppCompatActivity {
6 | }
7 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/ui/SubSettings.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.ui;
2 |
3 | import com.sevtinge.cemiuiler.ui.base.SettingsActivity;
4 |
5 | public class SubSettings extends SettingsActivity {}
6 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/ui/customhook/CustomHookConfigActivity.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.ui.customhook;
2 |
3 | import android.os.Bundle;
4 |
5 | import com.sevtinge.cemiuiler.R;
6 | import com.sevtinge.cemiuiler.ui.base.SettingsActivity;
7 |
8 | public class CustomHookConfigActivity extends SettingsActivity {
9 |
10 | @Override
11 | public void onCreate(Bundle bundle) {
12 | super.onCreate(bundle);
13 | setContentView(R.layout.activity_custom_hook_config);
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/AiAsstFragment.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.ui.fragment;
2 |
3 | import android.view.View;
4 |
5 | import com.sevtinge.cemiuiler.R;
6 | import com.sevtinge.cemiuiler.ui.base.BaseSettingsActivity;
7 | import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment;
8 |
9 | public class AiAsstFragment extends SettingsPreferenceFragment {
10 | @Override
11 | public int getContentResId() {
12 | return R.xml.aiasst;
13 | }
14 |
15 | @Override
16 | public View.OnClickListener addRestartListener() {
17 | return view -> ((BaseSettingsActivity)getActivity()).showRestartDialog(
18 | getResources().getString(R.string.aiasst),
19 | "com.xiaomi.aiasst.vision"
20 | );
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/AodFragment.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.ui.fragment;
2 |
3 | import android.view.View;
4 |
5 | import com.sevtinge.cemiuiler.R;
6 | import com.sevtinge.cemiuiler.ui.base.BaseSettingsActivity;
7 | import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment;
8 |
9 | public class AodFragment extends SettingsPreferenceFragment {
10 | @Override
11 | public int getContentResId() {
12 | return R.xml.aod;
13 | }
14 |
15 | @Override
16 | public View.OnClickListener addRestartListener() {
17 | return view -> ((BaseSettingsActivity)getActivity()).showRestartDialog(
18 | getResources().getString(R.string.aod),
19 | "com.miui.aod"
20 | );
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/BarrageFragment.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.ui.fragment;
2 |
3 | import android.view.View;
4 |
5 | import com.sevtinge.cemiuiler.R;
6 | import com.sevtinge.cemiuiler.ui.base.BaseSettingsActivity;
7 | import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment;
8 |
9 | public class BarrageFragment extends SettingsPreferenceFragment {
10 | @Override
11 | public int getContentResId() {
12 | return R.xml.barrage;
13 | }
14 |
15 | @Override
16 | public View.OnClickListener addRestartListener() {
17 | return view -> ((BaseSettingsActivity)getActivity()).showRestartDialog(
18 | getResources().getString(R.string.barrage),
19 | "com.xiaomi.barrage"
20 | );
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/BrowserFragment.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.ui.fragment;
2 |
3 | import android.view.View;
4 |
5 | import com.sevtinge.cemiuiler.R;
6 | import com.sevtinge.cemiuiler.ui.base.BaseSettingsActivity;
7 | import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment;
8 |
9 | public class BrowserFragment extends SettingsPreferenceFragment {
10 |
11 | @Override
12 | public int getContentResId() {
13 | return R.xml.browser;
14 | }
15 |
16 | @Override
17 | public View.OnClickListener addRestartListener() {
18 | return view -> ((BaseSettingsActivity)getActivity()).showRestartDialog(
19 | getResources().getString(R.string.browser),
20 | "com.android.browser"
21 | );
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/CameraFragment.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.ui.fragment;
2 |
3 | import android.view.View;
4 |
5 | import com.sevtinge.cemiuiler.R;
6 | import com.sevtinge.cemiuiler.ui.base.BaseSettingsActivity;
7 | import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment;
8 |
9 | public class CameraFragment extends SettingsPreferenceFragment {
10 |
11 | @Override
12 | public int getContentResId() {
13 | return R.xml.camera;
14 | }
15 |
16 | @Override
17 | public View.OnClickListener addRestartListener() {
18 | return view -> ((BaseSettingsActivity)getActivity()).showRestartDialog(
19 | getResources().getString(R.string.camera),
20 | "com.android.camera"
21 | );
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/ClockFragment.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.ui.fragment;
2 |
3 | import android.view.View;
4 |
5 | import com.sevtinge.cemiuiler.R;
6 | import com.sevtinge.cemiuiler.ui.base.BaseSettingsActivity;
7 | import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment;
8 |
9 | public class ClockFragment extends SettingsPreferenceFragment {
10 | @Override
11 | public int getContentResId() {
12 | return R.xml.clock;
13 | }
14 |
15 | @Override
16 | public View.OnClickListener addRestartListener() {
17 | return view -> ((BaseSettingsActivity)getActivity()).showRestartDialog(
18 | getResources().getString(R.string.clock),
19 | "com.android.deskclock"
20 | );
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/CreationFragment.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.ui.fragment;
2 |
3 | import android.view.View;
4 |
5 | import com.sevtinge.cemiuiler.R;
6 | import com.sevtinge.cemiuiler.ui.base.BaseSettingsActivity;
7 | import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment;
8 |
9 | public class CreationFragment extends SettingsPreferenceFragment {
10 | @Override
11 | public int getContentResId() {
12 | return R.xml.creation;
13 | }
14 |
15 | @Override
16 | public View.OnClickListener addRestartListener() {
17 | return view -> ((BaseSettingsActivity)getActivity()).showRestartDialog(
18 | getResources().getString(R.string.creation),
19 | "com.miui.creation"
20 | );
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/DownloadsFragment.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.ui.fragment;
2 |
3 | import android.view.View;
4 |
5 | import com.sevtinge.cemiuiler.R;
6 | import com.sevtinge.cemiuiler.ui.base.BaseSettingsActivity;
7 | import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment;
8 |
9 | public class DownloadsFragment extends SettingsPreferenceFragment {
10 | @Override
11 | public int getContentResId() {
12 | return R.xml.downloads;
13 | }
14 |
15 | @Override
16 | public View.OnClickListener addRestartListener() {
17 | return view -> ((BaseSettingsActivity)getActivity()).showRestartDialog(
18 | getResources().getString(R.string.downloads),
19 | "com.android.providers.downloads.ui"
20 | );
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/FileExplorerFragment.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.ui.fragment;
2 |
3 | import android.view.View;
4 |
5 | import com.sevtinge.cemiuiler.R;
6 | import com.sevtinge.cemiuiler.ui.base.BaseSettingsActivity;
7 | import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment;
8 |
9 | public class FileExplorerFragment extends SettingsPreferenceFragment {
10 | @Override
11 | public int getContentResId() {
12 | return R.xml.fileexplorer;
13 | }
14 |
15 | @Override
16 | public View.OnClickListener addRestartListener() {
17 | return view -> ((BaseSettingsActivity)getActivity()).showRestartDialog(
18 | getResources().getString(R.string.fileexplorer),
19 | "com.android.fileexplorer"
20 | );
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/GalleryFragment.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.ui.fragment;
2 |
3 | import android.view.View;
4 |
5 | import com.sevtinge.cemiuiler.R;
6 | import com.sevtinge.cemiuiler.ui.base.BaseSettingsActivity;
7 | import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment;
8 |
9 | public class GalleryFragment extends SettingsPreferenceFragment {
10 | @Override
11 | public int getContentResId() {
12 | return R.xml.gallery;
13 | }
14 |
15 | @Override
16 | public View.OnClickListener addRestartListener() {
17 | return view -> ((BaseSettingsActivity)getActivity()).showRestartDialog(
18 | getResources().getString(R.string.gallery),
19 | "com.miui.gallery"
20 | );
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/GuardProviderFragment.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.ui.fragment;
2 |
3 | import android.view.View;
4 |
5 | import com.sevtinge.cemiuiler.R;
6 | import com.sevtinge.cemiuiler.ui.base.BaseSettingsActivity;
7 | import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment;
8 |
9 | public class GuardProviderFragment extends SettingsPreferenceFragment {
10 | @Override
11 | public int getContentResId() {
12 | return R.xml.guard_provider;
13 | }
14 |
15 | @Override
16 | public View.OnClickListener addRestartListener() {
17 | return view -> ((BaseSettingsActivity)getActivity()).showRestartDialog(
18 | getResources().getString(R.string.guard_provider),
19 | "com.miui.guardprovider"
20 | );
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/HomeFragment.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.ui.fragment;
2 |
3 | import com.sevtinge.cemiuiler.R;
4 | import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment;
5 |
6 | public class HomeFragment extends SettingsPreferenceFragment {
7 | @Override
8 | public int getContentResId() {
9 | return R.xml.home;
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/InCallUiFragment.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.ui.fragment;
2 |
3 | import android.view.View;
4 |
5 | import com.sevtinge.cemiuiler.R;
6 | import com.sevtinge.cemiuiler.ui.base.BaseSettingsActivity;
7 | import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment;
8 |
9 | public class InCallUiFragment extends SettingsPreferenceFragment {
10 | @Override
11 | public int getContentResId() {
12 | return R.xml.incallui;
13 | }
14 |
15 | @Override
16 | public View.OnClickListener addRestartListener() {
17 | return view -> ((BaseSettingsActivity)getActivity()).showRestartDialog(
18 | getResources().getString(R.string.incallui),
19 | "com.android.incallui"
20 | );
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/JoyoseFragment.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.ui.fragment;
2 |
3 | import android.view.View;
4 |
5 | import com.sevtinge.cemiuiler.R;
6 | import com.sevtinge.cemiuiler.ui.base.BaseSettingsActivity;
7 | import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment;
8 |
9 | public class JoyoseFragment extends SettingsPreferenceFragment {
10 | @Override
11 | public int getContentResId() {
12 | return R.xml.joyose;
13 | }
14 |
15 | @Override
16 | public View.OnClickListener addRestartListener() {
17 | return view -> ((BaseSettingsActivity)getActivity()).showRestartDialog(
18 | getResources().getString(R.string.joyose),
19 | "com.xiaomi.joyose"
20 | );
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/LbeFragment.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.ui.fragment;
2 |
3 | import android.view.View;
4 |
5 | import com.sevtinge.cemiuiler.R;
6 | import com.sevtinge.cemiuiler.ui.base.BaseSettingsActivity;
7 | import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment;
8 |
9 | public class LbeFragment extends SettingsPreferenceFragment {
10 | @Override
11 | public int getContentResId() {
12 | return R.xml.lbe_security;
13 | }
14 |
15 | @Override
16 | public View.OnClickListener addRestartListener() {
17 | return view -> ((BaseSettingsActivity)getActivity()).showRestartDialog(
18 | getResources().getString(R.string.lbe),
19 | "com.lbe.security.miui"
20 | );
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/MarketFragment.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.ui.fragment;
2 |
3 | import android.view.View;
4 |
5 | import com.sevtinge.cemiuiler.R;
6 | import com.sevtinge.cemiuiler.ui.base.BaseSettingsActivity;
7 | import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment;
8 |
9 | public class MarketFragment extends SettingsPreferenceFragment {
10 | @Override
11 | public int getContentResId() {
12 | return R.xml.market;
13 | }
14 |
15 | @Override
16 | public View.OnClickListener addRestartListener() {
17 | return view -> ((BaseSettingsActivity)getActivity()).showRestartDialog(
18 | getResources().getString(R.string.market),
19 | "com.xiaomi.market"
20 | );
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/MediaEditorFragment.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.ui.fragment;
2 |
3 | import android.view.View;
4 |
5 | import com.sevtinge.cemiuiler.R;
6 | import com.sevtinge.cemiuiler.ui.base.BaseSettingsActivity;
7 | import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment;
8 |
9 | public class MediaEditorFragment extends SettingsPreferenceFragment {
10 | @Override
11 | public int getContentResId() {
12 | return R.xml.mediaeditor;
13 | }
14 |
15 | @Override
16 | public View.OnClickListener addRestartListener() {
17 | return view -> ((BaseSettingsActivity)getActivity()).showRestartDialog(
18 | getResources().getString(R.string.mediaeditor),
19 | "com.miui.mediaeditor"
20 | );
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/MiLinkFragment.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.ui.fragment;
2 |
3 | import android.view.View;
4 |
5 | import com.sevtinge.cemiuiler.R;
6 | import com.sevtinge.cemiuiler.ui.base.BaseSettingsActivity;
7 | import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment;
8 |
9 | public class MiLinkFragment extends SettingsPreferenceFragment {
10 | @Override
11 | public int getContentResId() {
12 | return R.xml.milink;
13 | }
14 |
15 | @Override
16 | public View.OnClickListener addRestartListener() {
17 | return view -> ((BaseSettingsActivity)getActivity()).showRestartDialog(
18 | getResources().getString(R.string.milink),
19 | "com.milink.service"
20 | );
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/MiSettingsFragment.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.ui.fragment;
2 |
3 | import android.view.View;
4 |
5 | import com.sevtinge.cemiuiler.R;
6 | import com.sevtinge.cemiuiler.ui.base.BaseSettingsActivity;
7 | import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment;
8 |
9 | public class MiSettingsFragment extends SettingsPreferenceFragment {
10 | @Override
11 | public int getContentResId() {
12 | return R.xml.mi_settings;
13 | }
14 |
15 | @Override
16 | public View.OnClickListener addRestartListener() {
17 | return view -> ((BaseSettingsActivity)getActivity()).showRestartDialog(
18 | getResources().getString(R.string.mi_settings),
19 | "com.xiaomi.misettings"
20 | );
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/MiWallpaperFragment.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.ui.fragment;
2 |
3 | import android.view.View;
4 |
5 | import com.sevtinge.cemiuiler.R;
6 | import com.sevtinge.cemiuiler.ui.base.BaseSettingsActivity;
7 | import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment;
8 |
9 | public class MiWallpaperFragment extends SettingsPreferenceFragment {
10 | @Override
11 | public int getContentResId() {
12 | return R.xml.miwallpaper;
13 | }
14 |
15 | @Override
16 | public View.OnClickListener addRestartListener() {
17 | return view -> ((BaseSettingsActivity)getActivity()).showRestartSystemDialog();
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/MirrorFragment.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.ui.fragment;
2 |
3 | import android.view.View;
4 |
5 | import com.sevtinge.cemiuiler.R;
6 | import com.sevtinge.cemiuiler.ui.base.BaseSettingsActivity;
7 | import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment;
8 |
9 | public class MirrorFragment extends SettingsPreferenceFragment {
10 | @Override
11 | public int getContentResId() {
12 | return R.xml.mirror;
13 | }
14 |
15 | @Override
16 | public View.OnClickListener addRestartListener() {
17 | return view -> ((BaseSettingsActivity)getActivity()).showRestartDialog(
18 | getResources().getString(R.string.mirror),
19 | "com.xiaomi.mirror"
20 | );
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/MmsFragment.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.ui.fragment;
2 |
3 | import android.view.View;
4 |
5 | import com.sevtinge.cemiuiler.R;
6 | import com.sevtinge.cemiuiler.ui.base.BaseSettingsActivity;
7 | import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment;
8 |
9 | public class MmsFragment extends SettingsPreferenceFragment {
10 | @Override
11 | public int getContentResId() {
12 | return R.xml.mms;
13 | }
14 |
15 | @Override
16 | public View.OnClickListener addRestartListener() {
17 | return view -> ((BaseSettingsActivity)getActivity()).showRestartDialog(
18 | getResources().getString(R.string.mms),
19 | "com.android.mms"
20 | );
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/MtbFragment.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.ui.fragment;
2 |
3 | import android.view.View;
4 |
5 | import com.sevtinge.cemiuiler.R;
6 | import com.sevtinge.cemiuiler.ui.base.BaseSettingsActivity;
7 | import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment;
8 |
9 | public class MtbFragment extends SettingsPreferenceFragment {
10 | @Override
11 | public int getContentResId() {
12 | return R.xml.mtb;
13 | }
14 |
15 | @Override
16 | public View.OnClickListener addRestartListener() {
17 | return view -> ((BaseSettingsActivity)getActivity()).showRestartDialog(
18 | getResources().getString(R.string.mtb),
19 | "com.xiaomi.mtb"
20 | );
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/MusicFragment.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.ui.fragment;
2 |
3 | import android.view.View;
4 |
5 | import com.sevtinge.cemiuiler.R;
6 | import com.sevtinge.cemiuiler.ui.base.BaseSettingsActivity;
7 | import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment;
8 |
9 | public class MusicFragment extends SettingsPreferenceFragment {
10 | @Override
11 | public int getContentResId() {
12 | return R.xml.music;
13 | }
14 |
15 | @Override
16 | public View.OnClickListener addRestartListener() {
17 | return view -> ((BaseSettingsActivity)getActivity()).showRestartDialog(
18 | getResources().getString(R.string.music),
19 | "com.miui.player"
20 | );
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/NfcFragment.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.ui.fragment;
2 |
3 | import android.view.View;
4 |
5 | import com.sevtinge.cemiuiler.R;
6 | import com.sevtinge.cemiuiler.ui.base.BaseSettingsActivity;
7 | import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment;
8 |
9 | public class NfcFragment extends SettingsPreferenceFragment {
10 | @Override
11 | public int getContentResId() {
12 | return R.xml.nfc;
13 | }
14 |
15 | @Override
16 | public View.OnClickListener addRestartListener() {
17 | return view -> ((BaseSettingsActivity)getActivity()).showRestartDialog(
18 | getResources().getString(R.string.nfc),
19 | "com.android.nfc"
20 | );
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/PhoneFragment.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.ui.fragment;
2 |
3 | import android.view.View;
4 |
5 | import com.sevtinge.cemiuiler.R;
6 | import com.sevtinge.cemiuiler.ui.base.BaseSettingsActivity;
7 | import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment;
8 |
9 | public class PhoneFragment extends SettingsPreferenceFragment {
10 | @Override
11 | public int getContentResId() {
12 | return R.xml.phone;
13 | }
14 |
15 | @Override
16 | public View.OnClickListener addRestartListener() {
17 | return view -> ((BaseSettingsActivity)getActivity()).showRestartDialog(
18 | getResources().getString(R.string.phone),
19 | "com.android.phone"
20 | );
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/PowerKeeperFragment.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.ui.fragment;
2 |
3 | import android.view.View;
4 |
5 | import com.sevtinge.cemiuiler.R;
6 | import com.sevtinge.cemiuiler.ui.base.BaseSettingsActivity;
7 | import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment;
8 |
9 | public class PowerKeeperFragment extends SettingsPreferenceFragment {
10 | @Override
11 | public int getContentResId() {
12 | return R.xml.powerkeeper;
13 | }
14 |
15 | @Override
16 | public View.OnClickListener addRestartListener() {
17 | return view -> ((BaseSettingsActivity)getActivity()).showRestartDialog(
18 | getResources().getString(R.string.powerkeeper),
19 | "com.miui.powerkeeper"
20 | );
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/ScannerFragment.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.ui.fragment;
2 |
3 | import android.view.View;
4 |
5 | import com.sevtinge.cemiuiler.R;
6 | import com.sevtinge.cemiuiler.ui.base.BaseSettingsActivity;
7 | import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment;
8 |
9 | public class ScannerFragment extends SettingsPreferenceFragment {
10 | @Override
11 | public int getContentResId() {
12 | return R.xml.scanner;
13 | }
14 |
15 | @Override
16 | public View.OnClickListener addRestartListener() {
17 | return view -> ((BaseSettingsActivity)getActivity()).showRestartDialog(
18 | getResources().getString(R.string.scanner),
19 | "com.xiaomi.scanner"
20 | );
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/ScreenRecorderFragment.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.ui.fragment;
2 |
3 | import android.view.View;
4 |
5 | import com.sevtinge.cemiuiler.R;
6 | import com.sevtinge.cemiuiler.ui.base.BaseSettingsActivity;
7 | import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment;
8 |
9 | public class ScreenRecorderFragment extends SettingsPreferenceFragment {
10 | @Override
11 | public int getContentResId() {
12 | return R.xml.screenrecorder;
13 | }
14 |
15 | @Override
16 | public View.OnClickListener addRestartListener() {
17 | return view -> ((BaseSettingsActivity)getActivity()).showRestartDialog(
18 | getResources().getString(R.string.screenrecorder),
19 | "com.miui.screenrecorder"
20 | );
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/ScreenShotFragment.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.ui.fragment;
2 |
3 | import android.view.View;
4 |
5 | import com.sevtinge.cemiuiler.R;
6 | import com.sevtinge.cemiuiler.ui.base.BaseSettingsActivity;
7 | import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment;
8 |
9 | public class ScreenShotFragment extends SettingsPreferenceFragment {
10 | @Override
11 | public int getContentResId() {
12 | return R.xml.screenshot;
13 | }
14 |
15 | @Override
16 | public View.OnClickListener addRestartListener() {
17 | return view -> ((BaseSettingsActivity)getActivity()).showRestartDialog(
18 | getResources().getString(R.string.screenshot),
19 | "com.miui.screenshot"
20 | );
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/SystemUIFragment.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.ui.fragment;
2 |
3 | import com.sevtinge.cemiuiler.R;
4 | import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment;
5 |
6 | public class SystemUIFragment extends SettingsPreferenceFragment {
7 | @Override
8 | public int getContentResId() {
9 | return R.xml.system_ui;
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/TsmClientFragment.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.ui.fragment;
2 |
3 | import android.view.View;
4 |
5 | import com.sevtinge.cemiuiler.R;
6 | import com.sevtinge.cemiuiler.ui.base.BaseSettingsActivity;
7 | import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment;
8 |
9 | public class TsmClientFragment extends SettingsPreferenceFragment {
10 | @Override
11 | public int getContentResId() {
12 | return R.xml.tsmclient;
13 | }
14 |
15 | @Override
16 | public View.OnClickListener addRestartListener() {
17 | return view -> ((BaseSettingsActivity)getActivity()).showRestartDialog(
18 | getResources().getString(R.string.tsmclient),
19 | "com.miui.tsmclient"
20 | );
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/WeatherFragment.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.ui.fragment;
2 |
3 | import android.view.View;
4 |
5 | import com.sevtinge.cemiuiler.R;
6 | import com.sevtinge.cemiuiler.ui.base.BaseSettingsActivity;
7 | import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment;
8 |
9 | public class WeatherFragment extends SettingsPreferenceFragment {
10 | @Override
11 | public int getContentResId() {
12 | return R.xml.weather;
13 | }
14 |
15 | @Override
16 | public View.OnClickListener addRestartListener() {
17 | return view -> ((BaseSettingsActivity)getActivity()).showRestartDialog(
18 | getResources().getString(R.string.weather),
19 | "com.miui.weather2"
20 | );
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/about/AboutContributerFragment.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.ui.fragment.about;
2 |
3 | import com.sevtinge.cemiuiler.R;
4 | import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment;
5 |
6 | public class AboutContributerFragment extends SettingsPreferenceFragment {
7 | @Override
8 | public int getContentResId() {
9 | return R.xml.prefs_about_contributor;
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/about/AboutUseFragment.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.ui.fragment.about;
2 |
3 | import com.sevtinge.cemiuiler.R;
4 | import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment;
5 |
6 | public class AboutUseFragment extends SettingsPreferenceFragment {
7 | @Override
8 | public int getContentResId() {
9 | return R.xml.prefs_about_use;
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/framework/NetworkSettings.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.ui.fragment.framework;
2 |
3 | import android.view.View;
4 |
5 | import com.sevtinge.cemiuiler.R;
6 | import com.sevtinge.cemiuiler.ui.base.BaseSettingsActivity;
7 | import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment;
8 |
9 | public class NetworkSettings extends SettingsPreferenceFragment {
10 | @Override
11 | public int getContentResId() {
12 | return R.xml.framework_phone;
13 | }
14 |
15 | @Override
16 | public View.OnClickListener addRestartListener() {
17 | return view -> ((BaseSettingsActivity)getActivity()).showRestartSystemDialog();
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/home/HomeGestureSettings.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.ui.fragment.home;
2 |
3 | import android.view.View;
4 |
5 | import com.sevtinge.cemiuiler.R;
6 | import com.sevtinge.cemiuiler.ui.base.BaseSettingsActivity;
7 | import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment;
8 |
9 | public class HomeGestureSettings extends SettingsPreferenceFragment {
10 | @Override
11 | public int getContentResId() {
12 | return R.xml.home_gesture;
13 | }
14 |
15 | @Override
16 | public View.OnClickListener addRestartListener() {
17 | return view -> ((BaseSettingsActivity)getActivity()).showRestartDialog(
18 | getResources().getString(R.string.home),
19 | "com.miui.home"
20 | );
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/home/HomeLayoutSettings.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.ui.fragment.home;
2 |
3 | import android.view.View;
4 |
5 | import com.sevtinge.cemiuiler.R;
6 | import com.sevtinge.cemiuiler.ui.base.BaseSettingsActivity;
7 | import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment;
8 |
9 | public class HomeLayoutSettings extends SettingsPreferenceFragment {
10 | @Override
11 | public int getContentResId() {
12 | return R.xml.home_layout;
13 | }
14 |
15 | @Override
16 | public View.OnClickListener addRestartListener() {
17 | return view -> ((BaseSettingsActivity)getActivity()).showRestartDialog(
18 | getResources().getString(R.string.home),
19 | "com.miui.home"
20 | );
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/home/HomeTitleAnimSettings.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.ui.fragment.home;
2 |
3 | import android.view.View;
4 |
5 | import com.sevtinge.cemiuiler.R;
6 | import com.sevtinge.cemiuiler.ui.base.BaseSettingsActivity;
7 | import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment;
8 |
9 | public class HomeTitleAnimSettings extends SettingsPreferenceFragment {
10 | @Override
11 | public int getContentResId() {
12 | return R.xml.home_title_anim;
13 | }
14 |
15 | @Override
16 | public View.OnClickListener addRestartListener() {
17 | return view -> ((BaseSettingsActivity)getActivity()).showRestartDialog(
18 | getResources().getString(R.string.home),
19 | "com.miui.home"
20 | );
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/home/HomeWidgetSettings.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.ui.fragment.home;
2 |
3 | import android.view.View;
4 |
5 | import com.sevtinge.cemiuiler.R;
6 | import com.sevtinge.cemiuiler.ui.base.BaseSettingsActivity;
7 | import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment;
8 |
9 | public class HomeWidgetSettings extends SettingsPreferenceFragment {
10 | @Override
11 | public int getContentResId() {
12 | return R.xml.home_widget;
13 | }
14 |
15 | @Override
16 | public View.OnClickListener addRestartListener() {
17 | return view -> ((BaseSettingsActivity)getActivity()).showRestartDialog(
18 | getResources().getString(R.string.home),
19 | "com.miui.home"
20 | );
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/settings/SafeModeFragment.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.ui.fragment.settings;
2 |
3 | import com.sevtinge.cemiuiler.R;
4 | import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment;
5 |
6 | public class SafeModeFragment extends SettingsPreferenceFragment {
7 | @Override
8 | public int getContentResId() { return R.xml.settings_safe_mode; }
9 | }
10 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/various/AOSPSettings.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.ui.fragment.various;
2 |
3 | import android.view.View;
4 |
5 | import com.sevtinge.cemiuiler.R;
6 | import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment;
7 |
8 | public class AOSPSettings extends SettingsPreferenceFragment {
9 | @Override
10 | public int getContentResId() { return R.xml.various_aosp; }
11 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/various/MiPadSettings.java:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.ui.fragment.various;
2 |
3 | import android.view.View;
4 |
5 | import com.sevtinge.cemiuiler.R;
6 | import com.sevtinge.cemiuiler.ui.base.BaseSettingsActivity;
7 | import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment;
8 |
9 | public class MiPadSettings extends SettingsPreferenceFragment {
10 | @Override
11 | public int getContentResId() { return R.xml.various_mipad; }
12 |
13 | @Override
14 | public View.OnClickListener addRestartListener() {
15 | return view -> ((BaseSettingsActivity)getActivity()).showRestartSystemDialog();
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/app/src/main/java/com/sevtinge/cemiuiler/utils/api/loadClassByLazy.kt:
--------------------------------------------------------------------------------
1 | package com.sevtinge.cemiuiler.utils.api
2 |
3 | import com.github.kyuubiran.ezxhelper.ClassUtils.loadClass
4 |
5 | // by StarVoyager
6 | object LazyClass {
7 | val clazzMiuiBuild by lazy {
8 | loadClass("miui.os.Build")
9 | }
10 |
11 | val AndroidBuildCls by lazy {
12 | loadClass("android.os.Build")
13 | }
14 |
15 | val SettingsFeaturesClass by lazy {
16 | loadClass("com.android.settings.utils.SettingsFeatures")
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/app/src/main/java/com/zhenxiang/blur/BlurFrameLayout.kt:
--------------------------------------------------------------------------------
1 | package com.zhenxiang.blur
2 |
3 | import android.content.Context
4 | import android.os.Build
5 | import android.widget.FrameLayout
6 | import androidx.annotation.RequiresApi
7 |
8 | class BlurFrameLayout constructor(context: Context) : FrameLayout(context) {
9 | @RequiresApi(Build.VERSION_CODES.S)
10 | val blurController: SystemBlurController = SystemBlurController(this)
11 | }
12 |
--------------------------------------------------------------------------------
/app/src/main/java/com/zhenxiang/blur/BlurLinearLayout.kt:
--------------------------------------------------------------------------------
1 | package com.zhenxiang.blur
2 |
3 | import android.content.Context
4 | import android.os.Build
5 | import android.widget.LinearLayout
6 | import androidx.annotation.RequiresApi
7 |
8 | class BlurLinearLayout constructor(context: Context) : LinearLayout(context) {
9 | @RequiresApi(Build.VERSION_CODES.S)
10 | val blurController: SystemBlurController = SystemBlurController(this)
11 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/zhenxiang/blur/model/CornerRadius.kt:
--------------------------------------------------------------------------------
1 | package com.zhenxiang.blur.model
2 |
3 | data class CornersRadius(
4 | val topLeft: Float,
5 | val topRight: Float,
6 | val bottomLeft: Float,
7 | val bottomRight: Float,
8 | ) {
9 |
10 | companion object {
11 | fun all(radius: Float): CornersRadius {
12 | return CornersRadius(radius, radius, radius, radius)
13 | }
14 |
15 | fun custom(
16 | topLeft: Float, topRight: Float, bottomLeft: Float, bottomRight: Float
17 | ): CornersRadius {
18 | return CornersRadius(topLeft, topRight, bottomLeft, bottomRight)
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/app/src/main/res/color/ic_small_window_color.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
11 |
14 |
--------------------------------------------------------------------------------
/app/src/main/res/color/ic_small_window_color2.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
11 |
14 |
--------------------------------------------------------------------------------
/app/src/main/res/color/ic_small_window_color3.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
11 |
14 |
--------------------------------------------------------------------------------
/app/src/main/res/color/ic_small_window_color4.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
11 |
14 |
--------------------------------------------------------------------------------
/app/src/main/res/color/ic_small_window_color5.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
11 |
14 |
--------------------------------------------------------------------------------
/app/src/main/res/color/visual_check_text_color.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/baseline_wb_sunny_24.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/bubble_bar_pop_bg.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_aiasst.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/ic_aiasst.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_aod.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/ic_aod.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_browser.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/ic_browser.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_call.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/ic_call.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_camera.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/ic_camera.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_clock.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/ic_clock.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_contentextension.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/ic_contentextension.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_creation.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/ic_creation.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_custom.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/ic_custom.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_downloads.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/ic_downloads.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_fileexplorer.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/ic_fileexplorer.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_gallery.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/ic_gallery.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_guard_provider.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/ic_guard_provider.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_guard_provider_new.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/ic_guard_provider_new.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_home.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/ic_home.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_lbe.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/ic_lbe.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_lingqiqi.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/ic_lingqiqi.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_market.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/ic_market.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_mediaeditor.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/ic_mediaeditor.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_milink.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/ic_milink.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_misettings.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/ic_misettings.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_mishare.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/ic_mishare.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_miui_plus.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/ic_miui_plus.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_miui_volume_notification.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_miwallpaper.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/ic_miwallpaper.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_mms.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/ic_mms.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_moralnorm.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/ic_moralnorm.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_mtb.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/ic_mtb.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_music.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/ic_music.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_package_installer.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/ic_package_installer.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_packageinstaller_background_dark.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_packageinstaller_background_light.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_personal_assistant.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/ic_personal_assistant.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_phone.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/ic_phone.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_powerkeeper.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/ic_powerkeeper.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_qs_tile_bg_disabled.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_qs_tile_bg_enabled.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_qs_tile_bg_warning.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_scanner.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/ic_scanner.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_screenrecorder.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/ic_screenrecorder.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_screenshot.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/ic_screenshot.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_security_center.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/ic_security_center.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_securityadd.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/ic_securityadd.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_sevtinge.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/ic_sevtinge.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_system_framework.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/ic_system_framework.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_system_settings.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/ic_system_settings.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_system_ui.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/ic_system_ui.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_theme_manager.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/ic_theme_manager.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_tsmclient.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/ic_tsmclient.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_updater.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/ic_updater.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_various_new.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/ic_various_new.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_voyager.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/ic_voyager.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_weather.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/ic_weather.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_yifeplayte.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/ic_yifeplayte.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/statusbar_signal_1_0_dark_theme.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/statusbar_signal_1_0_dark_theme.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/statusbar_signal_1_0_theme.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/statusbar_signal_1_0_theme.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/statusbar_signal_1_1_dark_theme.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/statusbar_signal_1_1_dark_theme.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/statusbar_signal_1_1_theme.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/statusbar_signal_1_1_theme.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/statusbar_signal_1_2_dark_theme.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/statusbar_signal_1_2_dark_theme.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/statusbar_signal_1_2_theme.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/statusbar_signal_1_2_theme.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/statusbar_signal_1_3_dark_theme.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/statusbar_signal_1_3_dark_theme.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/statusbar_signal_1_3_theme.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/statusbar_signal_1_3_theme.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/statusbar_signal_1_4_dark_theme.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/statusbar_signal_1_4_dark_theme.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/statusbar_signal_1_4_theme.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/statusbar_signal_1_4_theme.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/statusbar_signal_1_5_dark_theme.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/statusbar_signal_1_5_dark_theme.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/statusbar_signal_1_5_theme.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/statusbar_signal_1_5_theme.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/statusbar_signal_2_0_dark_theme.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/statusbar_signal_2_0_dark_theme.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/statusbar_signal_2_0_theme.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/statusbar_signal_2_0_theme.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/statusbar_signal_2_1_dark_theme.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/statusbar_signal_2_1_dark_theme.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/statusbar_signal_2_1_theme.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/statusbar_signal_2_1_theme.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/statusbar_signal_2_2_dark_theme.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/statusbar_signal_2_2_dark_theme.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/statusbar_signal_2_2_theme.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/statusbar_signal_2_2_theme.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/statusbar_signal_2_3_dark_theme.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/statusbar_signal_2_3_dark_theme.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/statusbar_signal_2_3_theme.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/statusbar_signal_2_3_theme.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/statusbar_signal_2_4_dark_theme.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/statusbar_signal_2_4_dark_theme.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/statusbar_signal_2_4_theme.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/statusbar_signal_2_4_theme.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/statusbar_signal_2_5_dark_theme.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/statusbar_signal_2_5_dark_theme.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/statusbar_signal_2_5_theme.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/app/src/main/res/drawable/statusbar_signal_2_5_theme.webp
--------------------------------------------------------------------------------
/app/src/main/res/layout/fragment_common_padded.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/frame_content.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/item_mutiplechoice.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/preference_custom_blur_dark_mode.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/preference_custom_blur_light_mode.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/preference_divider.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/settings_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
10 |
11 |
12 |
13 |
17 |
18 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/statusbar_text_icon.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/menu_location.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/menu_location_simulation.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/menu_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/menu_system_framework_other.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/resources.properties:
--------------------------------------------------------------------------------
1 | unqualifiedResLocale=en-US
2 |
--------------------------------------------------------------------------------
/app/src/main/res/values-night-v31/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | @android:color/system_accent1_800
4 | @android:color/system_accent1_200
5 |
--------------------------------------------------------------------------------
/app/src/main/res/values-night/themes.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
--------------------------------------------------------------------------------
/app/src/main/res/values-v31/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | @android:color/system_accent1_0
4 | @android:color/system_accent1_300
5 |
--------------------------------------------------------------------------------
/app/src/main/res/values/bools.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | true
4 | true
5 | true
6 | true
7 | true
8 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/aiasst.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/aod.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/backup_rules.xml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
13 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/browser.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/clock.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/creation.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/data_extraction_rules.xml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
12 |
13 |
19 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/downloads.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/fileexplorer.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
10 |
11 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/guard_provider.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/incallui.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
9 |
10 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/lbe_security.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/mediaeditor.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
9 |
10 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/mi_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/milink.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/mirror.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/mishare.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
12 |
13 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/miwallpaper.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/mms.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/mtb.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/music.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/networkboost.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/nfc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
9 |
10 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/phone.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/tsmclient.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/weather.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/build.gradle:
--------------------------------------------------------------------------------
1 | buildscript {
2 | ext {
3 | agp_version = '8.3.0-alpha4'
4 | agp_version1 = '8.1.1'
5 | }
6 | }// Top-level build file where you can add configuration options common to all sub-projects/modules.
7 | plugins {
8 | id 'com.android.application' version '8.1.2' apply false
9 | id 'com.android.library' version '8.1.2' apply false
10 | id("org.jetbrains.kotlin.android") version '1.9.20' apply false
11 | }
12 |
13 | tasks.register('clean', Delete) {
14 | delete rootProject.layout.buildDirectory
15 | }
16 |
17 | apply from: "config.gradle"
18 |
--------------------------------------------------------------------------------
/crowdin.yml:
--------------------------------------------------------------------------------
1 | project_id_env: CROWDIN_PROJECT_ID
2 | api_token_env: CROWDIN_API_TOKEN
3 | pull_request_title: '[translation] Update translation from Crowdin'
4 | preserve_hierarchy: true
5 |
6 | files:
7 | - source: /app/src/main/res/values/strings.xml
8 | translation: /app/src/main/res/values-%two_letters_code%/%original_file_name%
9 | type: android
10 | skip_untranslated_strings: true
11 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Sun Aug 20 20:29:27 CST 2023
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-bin.zip
5 | zipStoreBase=GRADLE_USER_HOME
6 | zipStorePath=wrapper/dists
7 |
--------------------------------------------------------------------------------
/hidden-api/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/hidden-api/src/main/java/android/view/ViewRootImpl.java:
--------------------------------------------------------------------------------
1 | package android.view;
2 |
3 | import android.os.Build;
4 |
5 | import androidx.annotation.RequiresApi;
6 |
7 | import com.android.internal.graphics.drawable.BackgroundBlurDrawable;
8 |
9 | public class ViewRootImpl {
10 | @RequiresApi(Build.VERSION_CODES.S)
11 | public BackgroundBlurDrawable createBackgroundBlurDrawable() {
12 | throw new RuntimeException("Stub!");
13 | }
14 | }
--------------------------------------------------------------------------------
/hidden-api/src/main/java/com/android/internal/graphics/drawable/BackgroundBlurDrawable.java:
--------------------------------------------------------------------------------
1 | package com.android.internal.graphics.drawable;
2 |
3 | import android.graphics.drawable.Drawable;
4 | import android.os.Build;
5 |
6 | import androidx.annotation.RequiresApi;
7 |
8 | @RequiresApi(Build.VERSION_CODES.S)
9 | public abstract class BackgroundBlurDrawable extends Drawable {
10 | }
11 |
--------------------------------------------------------------------------------
/hidden-api/src/main/java/miui/app/MiuiFreeFormManager.java:
--------------------------------------------------------------------------------
1 | package miui.app;
2 |
3 | public class MiuiFreeFormManager {
4 | }
5 |
--------------------------------------------------------------------------------
/hidden-api/src/main/java/miui/drm/DrmManager.kt:
--------------------------------------------------------------------------------
1 | package miui.drm
2 |
3 | class DrmManager {
4 | enum class DrmResult {
5 | DRM_SUCCESS
6 | }
7 | }
--------------------------------------------------------------------------------
/hidden-api/src/main/java/miui/drm/ThemeReceiver.kt:
--------------------------------------------------------------------------------
1 | package miui.drm
2 |
3 | class ThemeReceiver
--------------------------------------------------------------------------------
/imgs/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ReChronoRain/Cemiuiler/b66a0b6fc3e0be823cd837daf4db07172f9be360/imgs/icon.png
--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
1 | pluginManagement {
2 | repositories {
3 | gradlePluginPortal()
4 | google()
5 | mavenCentral()
6 | }
7 | }
8 |
9 |
10 | dependencyResolutionManagement {
11 | repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
12 | repositories {
13 | google()
14 | mavenCentral()
15 | maven {
16 | url 'https://api.xposed.info'
17 | }
18 |
19 | maven { url 'https://jitpack.io' }
20 | }
21 | }
22 | rootProject.name = "Cemiuiler"
23 | include ':app'
24 | include ':hidden-api'
25 |
--------------------------------------------------------------------------------
/signing.properties.example:
--------------------------------------------------------------------------------
1 | storeFile=
2 | storePassword=
3 | keyAlias=
4 | keyPassword=
5 |
--------------------------------------------------------------------------------