Skip to content
This repository has been archived by the owner on Nov 4, 2023. It is now read-only.

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
Sevtinge committed Jun 14, 2023
2 parents 98805db + a1a445a commit f6fd44e
Show file tree
Hide file tree
Showing 57 changed files with 602 additions and 517 deletions.
13 changes: 6 additions & 7 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -34,17 +34,20 @@ android {
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro', 'proguard-log.pro'
versionNameSuffix "_" + DateTimeFormatter.ofPattern("yyyyMMdd").format(LocalDateTime.now())
}
beta {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro', 'proguard-log.pro'
versionNameSuffix "_" + DateTimeFormatter.ofPattern("yyyyMMdd").format(LocalDateTime.now())
}
canary {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro', 'proguard-log.pro'
versionNameSuffix "_" + DateTimeFormatter.ofPattern("yyyyMMdd").format(LocalDateTime.now()) + "_" + getGitRevision()
}
debug {
Expand All @@ -63,10 +66,6 @@ android {

namespace 'com.sevtinge.cemiuiler'
}
/*
repositories {
mavenCentral()
}*/

dependencies {

Expand Down
54 changes: 54 additions & 0 deletions app/proguard-log.pro
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
##########################################################################################################
# 作者:Sollyu
# 日期:2020-11-02
# 内容:发布版本移除日志,kotlin编译时带的而外信息,增强反调试难度
# 使用:proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro', 'proguard-log.pro'
##########################################################################################################

##########################################################################################################
# 删除安卓日志
-assumenosideeffects class android.util.Log {
public static *** d(...);
public static *** v(...);
public static *** w(...);
public static *** e(...);
}

##########################################################################################################
# 删除Kotlin编译时可能生成显示变量的方法
-assumenosideeffects class kotlin.jvm.internal.Intrinsics {
public static void checkExpressionValueIsNotNull(java.lang.Object, java.lang.String);
public static void checkFieldIsNotNull(java.lang.Object, java.lang.String);
public static void checkFieldIsNotNull(java.lang.Object, java.lang.String, java.lang.String);
public static void checkNotNull(java.lang.Object);
public static void checkNotNull(java.lang.Object, java.lang.String);
public static void checkNotNullExpressionValue(java.lang.Object, java.lang.String);
public static void checkNotNullParameter(java.lang.Object, java.lang.String);
public static void checkParameterIsNotNull(java.lang.Object, java.lang.String);
public static void checkReturnedValueIsNotNull(java.lang.Object, java.lang.String);
public static void throwUninitializedPropertyAccessException(java.lang.String);
}

##########################################################################################################
# 会暴露变量名称
-assumenosideeffects class java.util.Objects {
public static java.lang.Object requireNonNull(java.lang.Object, java.lang.String);
}

##########################################################################################################
# 删除slf4j的日志输出
-assumenosideeffects interface org.slf4j.Logger {
public void trace(...);
public void debug(...);
public void info(...);
public void warn(...);
public void error(...);

public boolean isTraceEnabled(...);
public boolean isDebugEnabled(...);
public boolean isWarnEnabled(...);
}

-assumenosideeffects class org.slf4j.LoggerFactory {
public static ** getLogger(...);
}
3 changes: 3 additions & 0 deletions app/proguard-rules.pro
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,8 @@
-keep class * extends com.sevtinge.cemiuiler.module.base.BaseHook
-keep class com.sevtinge.cemiuiler.ui.HideAppActivity
-keep class * extends com.sevtinge.cemiuiler.ui.fragment.base.*
-keep class miui.drm.**{*;}
-dontwarn android.app.ActivityTaskManager$RootTaskInfo
-dontwarn miui.app.MiuiFreeFormManager$MiuiFreeFormStackInfo
-allowaccessmodification
-overloadaggressively
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.sevtinge.cemiuiler.module;

import static com.sevtinge.cemiuiler.utils.devicesdk.SystemSDKKt.isAndroidR;

import com.sevtinge.cemiuiler.module.base.BaseModule;
import com.sevtinge.cemiuiler.module.securitycenter.AppLockPinScramble;
import com.sevtinge.cemiuiler.module.securitycenter.BlurSecurity;
Expand Down Expand Up @@ -30,7 +32,6 @@
import com.sevtinge.cemiuiler.module.securitycenter.lab.AiClipboardEnable;
import com.sevtinge.cemiuiler.module.securitycenter.lab.BlurLocationEnable;
import com.sevtinge.cemiuiler.module.securitycenter.lab.GetNumberEnable;
import com.sevtinge.cemiuiler.utils.devicesdk.SdkHelper;

public class SecurityCenter extends BaseModule {

Expand Down Expand Up @@ -58,10 +59,10 @@ public void handleLoadPackage() {
initHook(new GetNumberEnable(), mPrefsMap.getBoolean("security_center_get_number"));

// 前置摄像助手
initHook(new BeautyLight(), mPrefsMap.getBoolean("security_center_beauty_light"));
initHook(BeautyLight.INSTANCE, mPrefsMap.getBoolean("security_center_beauty_light"));
initHook(new BeautyLightAuto(), mPrefsMap.getBoolean("security_center_beauty_light_auto"));
initHook(new BeautyFace(), mPrefsMap.getBoolean("security_center_beauty_face"));
initHook(new BeautyPrivacy(), mPrefsMap.getBoolean("security_center_beauty_privacy"));
initHook(BeautyPrivacy.INSTANCE, mPrefsMap.getBoolean("security_center_beauty_privacy"));
initHook(new BeautyPc(), mPrefsMap.getBoolean("security_center_beauty_pc"));

// 其他
Expand All @@ -80,7 +81,7 @@ public void handleLoadPackage() {
initHook(new RemoveOpenAppConfirmationPopup(), mPrefsMap.getBoolean("security_center_remove_open_app_confirmation_popup"));

//
if (!SdkHelper.isAndroidR()) {
if (!isAndroidR()) {
initHook(new NewBoxBlur(), mPrefsMap.getBoolean("security_center_newbox_custom_enable"));
initHook(BlurSecurity.INSTANCE, mPrefsMap.getBoolean("se_enable"));
initHook(SidebarLineCustom.INSTANCE, mPrefsMap.getBoolean("security_center_sidebar_line_color"));
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.sevtinge.cemiuiler.module;

import static com.sevtinge.cemiuiler.utils.devicesdk.SystemSDKKt.isAndroidT;

import com.sevtinge.cemiuiler.module.base.BaseModule;
import com.sevtinge.cemiuiler.module.systemframework.AllowUntrustedTouch;
import com.sevtinge.cemiuiler.module.systemframework.AppDisableService;
Expand Down Expand Up @@ -36,7 +38,6 @@
import com.sevtinge.cemiuiler.module.systemframework.network.N1Band;
import com.sevtinge.cemiuiler.module.systemframework.network.N28Band;
import com.sevtinge.cemiuiler.module.systemframework.network.N5N8Band;
import com.sevtinge.cemiuiler.utils.devicesdk.SdkHelper;


public class SystemFramework extends BaseModule {
Expand All @@ -53,9 +54,7 @@ public void handleLoadPackage() {
initHook(RemoveSmallWindowRestrictions.INSTANCE, mPrefsMap.getBoolean("system_framework_disable_freeform_blacklist"));
initHook(new StickyFloatingWindows(), mPrefsMap.getBoolean("system_framework_freeform_sticky"));
initHook(MultiFreeFormSupported.INSTANCE, mPrefsMap.getBoolean("system_framework_freeform_recents_to_small_freeform"));
initHook(new OpenAppInFreeForm(), mPrefsMap.getBoolean("system_framework_freeform_open_notification") ||
mPrefsMap.getBoolean("system_framework_freeform_app_share") ||
mPrefsMap.getBoolean("system_framework_freeform_open_notification_fw"));
initHook(new OpenAppInFreeForm(), mPrefsMap.getBoolean("system_framework_freeform_jump"));
// initHook(new OpenAppInFreeForm(), mPrefsMap.getBoolean("system_framework_freeform_jump"));

// 音量
Expand Down Expand Up @@ -104,7 +103,7 @@ public void handleLoadPackage() {
initHook(new LocationSimulation(), false);

// 核心破解
if (SdkHelper.isAndroidTiramisu()) {
if (isAndroidT()) {
initHook(BypassSignCheckForT.INSTANCE, mPrefsMap.getBoolean("system_framework_core_patch_auth_creak"));
}

Expand Down
11 changes: 6 additions & 5 deletions app/src/main/java/com/sevtinge/cemiuiler/module/SystemUI.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.sevtinge.cemiuiler.module;

import static com.sevtinge.cemiuiler.utils.devicesdk.SystemSDKKt.isAndroidR;

import com.sevtinge.cemiuiler.module.base.BaseModule;
import com.sevtinge.cemiuiler.module.systemui.BluetoothRestrict;
import com.sevtinge.cemiuiler.module.systemui.ChargeAnimationStyle;
Expand Down Expand Up @@ -33,7 +35,7 @@
import com.sevtinge.cemiuiler.module.systemui.lockscreen.ClockDisplaySeconds;
import com.sevtinge.cemiuiler.module.systemui.lockscreen.ForceClockUseSystemFontsHook;
import com.sevtinge.cemiuiler.module.systemui.lockscreen.LockScreenDoubleTapToSleep;
import com.sevtinge.cemiuiler.module.systemui.lockscreen.NoPasswordHook;
import com.sevtinge.cemiuiler.module.systemui.lockscreen.NoPassword;
import com.sevtinge.cemiuiler.module.systemui.lockscreen.RemoveCamera;
import com.sevtinge.cemiuiler.module.systemui.lockscreen.RemoveSmartScreen;
import com.sevtinge.cemiuiler.module.systemui.lockscreen.ScramblePIN;
Expand Down Expand Up @@ -68,7 +70,6 @@
import com.sevtinge.cemiuiler.module.systemui.statusbar.network.NetworkSpeedStyle;
import com.sevtinge.cemiuiler.module.systemui.statusbar.network.StatusBarNoNetSpeedSep;
import com.sevtinge.cemiuiler.module.systemui.statusbar.network.s.NetworkSpeedWidth;
import com.sevtinge.cemiuiler.utils.devicesdk.SdkHelper;

import java.util.Objects;

Expand Down Expand Up @@ -120,9 +121,9 @@ public void handleLoadPackage() {
// 网速指示器
if (mPrefsMap.getBoolean("system_ui_statusbar_network_speed_enable_custom")) {
initHook(NetworkSpeed.INSTANCE);
initHook(NetworkSpeedStyle.INSTANCE);
initHook(NetworkSpeedWidth.INSTANCE, mPrefsMap.getInt("system_ui_statusbar_network_speed_fixedcontent_width", 10) > 10);
}
initHook(NetworkSpeedStyle.INSTANCE);
initHook(NetworkSpeedSpacing.INSTANCE, mPrefsMap.getInt("system_ui_statusbar_network_speed_update_spacing", 3) != 3);
initHook(NetworkSpeedSec.INSTANCE, mPrefsMap.getBoolean("system_ui_statusbar_network_speed_sec_unit"));
initHook(StatusBarNoNetSpeedSep.INSTANCE, mPrefsMap.getBoolean("system_ui_status_bar_no_netspeed_separator"));
Expand Down Expand Up @@ -205,11 +206,11 @@ public void handleLoadPackage() {
mPrefsMap.getBoolean("system_ui_show_charging_v_more"));
initHook(RemoveCamera.INSTANCE, mPrefsMap.getBoolean("system_ui_lock_screen_hide_camera"));
initHook(RemoveSmartScreen.INSTANCE, mPrefsMap.getBoolean("system_ui_lock_screen_hide_smart_screen"));
initHook(NoPasswordHook.INSTANCE, mPrefsMap.getBoolean("system_ui_lock_screen_password_free"));
initHook(NoPassword.INSTANCE, mPrefsMap.getBoolean("system_ui_lock_screen_password_free"));
initHook(LockScreenDoubleTapToSleep.INSTANCE, mPrefsMap.getBoolean("system_ui_lock_screen_double_lock"));
initHook(ForceClockUseSystemFontsHook.INSTANCE, mPrefsMap.getBoolean("system_ui_lock_screen_force_system_fonts"));

if (!SdkHelper.isAndroidR()) {
if (!isAndroidR()) {
initHook(AddBlurEffectToLockScreen.INSTANCE);
initHook(AddBlurEffectToNotificationView.INSTANCE, mPrefsMap.getBoolean("n_enable"));
initHook(BlurButton.INSTANCE, mPrefsMap.getBoolean("system_ui_lock_screen_blur_button"));
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
package com.sevtinge.cemiuiler.module.base;

import android.os.Build;

import com.sevtinge.cemiuiler.utils.devicesdk.SdkHelper;
import static com.sevtinge.cemiuiler.utils.devicesdk.SystemSDKKt.isMoreAndroidVersion;

import android.os.Build;

import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam;

Expand All @@ -15,7 +16,7 @@ public abstract class SystemUIHook extends BaseHook {
public void setLoadPackageParam(LoadPackageParam param) {
super.setLoadPackageParam(param);

if (SdkHelper.isAndroidMoreVersion(Build.VERSION_CODES.TIRAMISU)) {
if (isMoreAndroidVersion(Build.VERSION_CODES.TIRAMISU)) {
mPluginLoaderClassName = "com.android.systemui.shared.plugins.PluginInstance$Factory";
} else {
mPluginLoaderClassName = "com.android.systemui.shared.plugins.PluginManagerImpl";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,17 +45,10 @@ object BlurSecurity : BaseHook() {

// 不反转颜色的名单ID或类名
// whiteList 不在列表内子元素也会反色
private val invertColorWhiteList =
arrayOf(
"lv_main",
"second_view"
)
private val invertColorWhiteList = arrayOf("lv_main", "second_view")

// keepList 列表内元素及其子元素不会反色
private val keepColorList =
arrayOf(
"rv_information"
)
private val keepColorList = arrayOf("rv_information")

override fun init() {
val turboLayoutClass = findClassIfExists(
Expand All @@ -67,17 +60,17 @@ object BlurSecurity : BaseHook() {
lateinit var videoBoxViewClass: Class<*>
lateinit var videoBoxViewMethodName: String
when {
getPackageVersionCode(lpparam) in 40000749..40000750 || getPackageVersionCode(lpparam) == 40000770 || getPackageVersionCode(
lpparam
) == 40000780 -> {
getPackageVersionCode(lpparam) in 40000749..40000750 ||
getPackageVersionCode(lpparam) == 40000770 ||
getPackageVersionCode(lpparam) >= 40000780 -> {
appVersionCode = 40000749
videoBoxViewClass = findClassIfExists("t7.i") ?: return
videoBoxViewMethodName = "i"
}

getPackageVersionCode(lpparam) in 40000771..40000776 -> {
appVersionCode = 40000771
videoBoxViewClass = findClassIfExists("r7.m") ?: return
videoBoxViewClass = findClassIfExists("r7.m") ?: findClassIfExists("t7.i") ?: return
videoBoxViewMethodName = "j"
}

Expand Down Expand Up @@ -120,12 +113,7 @@ object BlurSecurity : BaseHook() {
}

view.background =
HookUtils.createBlurDrawable(
view,
blurRadius,
40,
backgroundColor
)
HookUtils.createBlurDrawable(view, blurRadius, 40, backgroundColor)
}

override fun onViewDetachedFromWindow(view: View) {
Expand All @@ -152,12 +140,7 @@ object BlurSecurity : BaseHook() {
}

gameContentLayout.background =
HookUtils.createBlurDrawable(
gameContentLayout,
blurRadius,
40,
backgroundColor
)
HookUtils.createBlurDrawable(gameContentLayout, blurRadius, 40, backgroundColor)

if (shouldInvertColor) {
invertViewColor(gameContentLayout)
Expand Down Expand Up @@ -226,12 +209,7 @@ object BlurSecurity : BaseHook() {
}

view.background =
HookUtils.createBlurDrawable(
view,
blurRadius,
40,
backgroundColor
)
HookUtils.createBlurDrawable(view, blurRadius, 40, backgroundColor)

if (shouldInvertColor) {
invertViewColor(mainContent)
Expand Down Expand Up @@ -266,12 +244,7 @@ object BlurSecurity : BaseHook() {
}

view.background =
HookUtils.createBlurDrawable(
view,
blurRadius,
40,
backgroundColor
)
HookUtils.createBlurDrawable(view, blurRadius, 40, backgroundColor)

if (shouldInvertColor) {
invertViewColor(mainContent)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ public void init() {
.addQuery("Macro", List.of("pref_gb_unsupport_macro_apps", "gb_game_gunsight", "com.tencent.tmgp.sgame"))
.addQuery("Macro1", List.of("key_macro_toast", "content://com.xiaomi.macro.MacroStatusProvider/game_macro_change"))
.addQuery("LabUtils", List.of("mi_lab_ai_clipboard_enable", "mi_lab_blur_location_enable"))
.addQuery("BeautyLight", List.of("pref_support_front_light", "pref_privacy_support_devices"))
.matchType(MatchType.CONTAINS)
.build()
);
Expand Down
Loading

0 comments on commit f6fd44e

Please sign in to comment.