From 99a6ecc5df8461f9285bd54c4145d4cea35e3f74 Mon Sep 17 00:00:00 2001 From: mu7220 <80700814+mu7220@users.noreply.github.com> Date: Sun, 11 Jun 2023 22:47:16 +0800 Subject: [PATCH 01/24] =?UTF-8?q?=E4=BC=98=E5=8C=96=20=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui/fragment/framework/NetworkSettings.java | 8 ++++++++ .../ui/fragment/framework/VolumeSettings.java | 10 ++++++++++ app/src/main/res/values-en-rUS/strings.xml | 2 +- app/src/main/res/values-ru/strings.xml | 2 +- app/src/main/res/values-zh-rCN/strings.xml | 2 +- app/src/main/res/values-zh-rHK/strings.xml | 2 +- app/src/main/res/values-zh-rTW/strings.xml | 2 +- app/src/main/res/values/strings.xml | 2 +- 8 files changed, 24 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/framework/NetworkSettings.java b/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/framework/NetworkSettings.java index d333ce685..66a4d0023 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/framework/NetworkSettings.java +++ b/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/framework/NetworkSettings.java @@ -1,6 +1,9 @@ package com.sevtinge.cemiuiler.ui.fragment.framework; +import android.view.View; + import com.sevtinge.cemiuiler.R; +import com.sevtinge.cemiuiler.ui.base.BaseSettingsActivity; import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment; public class NetworkSettings extends SettingsPreferenceFragment { @@ -8,4 +11,9 @@ public class NetworkSettings extends SettingsPreferenceFragment { public int getContentResId() { return R.xml.framework_phone; } + + @Override + public View.OnClickListener addRestartListener() { + return view -> ((BaseSettingsActivity)getActivity()).showRestartSystemDialog(); + } } diff --git a/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/framework/VolumeSettings.java b/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/framework/VolumeSettings.java index dd96958fd..0ff4f57b6 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/framework/VolumeSettings.java +++ b/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/framework/VolumeSettings.java @@ -1,8 +1,10 @@ package com.sevtinge.cemiuiler.ui.fragment.framework; import android.provider.Settings; +import android.view.View; import com.sevtinge.cemiuiler.R; +import com.sevtinge.cemiuiler.ui.base.BaseSettingsActivity; import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment; import moralnorm.preference.DropDownPreference; @@ -15,6 +17,14 @@ public int getContentResId() { return R.xml.framework_volume; } + @Override + public View.OnClickListener addRestartListener() { + return view -> ((BaseSettingsActivity)getActivity()).showRestartDialog( + getResources().getString(R.string.system_ui), + "com.android.systemui" + ); + } + @Override public void initPrefs() { mDefaultVolumeStream = findPreference("prefs_key_system_framework_default_volume_stream"); diff --git a/app/src/main/res/values-en-rUS/strings.xml b/app/src/main/res/values-en-rUS/strings.xml index 4c503bcad..61db56701 100644 --- a/app/src/main/res/values-en-rUS/strings.xml +++ b/app/src/main/res/values-en-rUS/strings.xml @@ -683,7 +683,7 @@ Please set app drawer background transparency to 100% to use this feature Allow classic widget to be moved to the Minus One screen Always blur launcher wallpaper - Reboot + Reboot Transition animations use native styles Network speed indicator management Default diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 531806571..95aede03c 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -621,7 +621,7 @@ Общий доступ к сторонним приложениям Mi Smart Hub Фото - Перезагрузка + Перезагрузка Отметить новый модуль По умолчанию Всегда скрывать diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 2a5e809a4..806712500 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -14,7 +14,7 @@ 感谢以下贡献者为 Cemiuiler 的开发提供了不同程度的帮助(排名顺序不分先后) 支持 您可以在此处捐赠以支持我们 - 重启 + 重启 确定要立即重启 吗? 提示 diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml index 638a653ba..0c2151ad9 100644 --- a/app/src/main/res/values-zh-rHK/strings.xml +++ b/app/src/main/res/values-zh-rHK/strings.xml @@ -502,7 +502,7 @@ 現在您必須手動啟用此選項的權限。 還原成功 還原 - 重啟 + 重啟 "確定要立即重啟" "嗎?" 小愛視覺 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index fdb50a304..3573fcdc9 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -502,7 +502,7 @@ 現在您必須手動啟用此選項的權限。 還原成功 還原 - 重啟 + 重啟 "確定要立即重啟" "嗎?" 小愛視覺 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index b0ba73739..1545c8f25 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -674,7 +674,7 @@ App name distance task view card Task view card rounded corners Disable hide Google - Reboot + Reboot Network speed indicator management Default Network speed update interval From ecf7cec2ee925d635e185adcc5f0e9c015b6e28f Mon Sep 17 00:00:00 2001 From: mu7220 <80700814+mu7220@users.noreply.github.com> Date: Sun, 11 Jun 2023 23:25:18 +0800 Subject: [PATCH 02/24] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E6=95=B4=E4=BD=93=E6=96=87=E6=9C=AC=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/res/values-en-rUS/strings.xml | 26 ++++++++++++ app/src/main/res/values-pt-rBR/strings.xml | 1 + app/src/main/res/values-ru/strings.xml | 1 + app/src/main/res/values-tr/strings.xml | 1 + app/src/main/res/values-vi/strings.xml | 43 +++++--------------- app/src/main/res/values-zh-rCN/strings.xml | 29 +++++++++++++ app/src/main/res/values-zh-rHK/strings.xml | 47 ++++++---------------- app/src/main/res/values-zh-rTW/strings.xml | 47 ++++++---------------- app/src/main/res/values/strings.xml | 28 +++++++++++++ 9 files changed, 119 insertions(+), 104 deletions(-) diff --git a/app/src/main/res/values-en-rUS/strings.xml b/app/src/main/res/values-en-rUS/strings.xml index 61db56701..ab4b9bad8 100644 --- a/app/src/main/res/values-en-rUS/strings.xml +++ b/app/src/main/res/values-en-rUS/strings.xml @@ -1024,4 +1024,30 @@ Home screen distance from screen top margin New Task Shortcut + High level + Not set + Copy + Turned on + Turned off + Copied %1$s to clipboard. + Default + Choose the color + Preset color + Custom color + Transparency + Confirm selection + Back to the homepage + Back to the previous level + Back + Select all + Cancel + Ok + Select all + Unselect all + Delete + Cancel + Search + More + More + Clear up \ No newline at end of file diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 4c4333d4e..102c87b74 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -990,4 +990,5 @@ Remova quaisquer limitações de tamanho do widget Margem inferior Margem superior + Defeito \ No newline at end of file diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 95aede03c..1e9b431d0 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -1027,4 +1027,5 @@ Сделайте MIUI снова великой! Нижняя граница Верхняя граница + Стандарт diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index c71b089f4..6ed36a102 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -818,4 +818,5 @@ Widget boyut sınırlamalarını kaldırın Alt kenar boşluğu Üst kenar boşluğu + Varsayılan diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml index dc5aeb2f1..b6d1ebd4d 100644 --- a/app/src/main/res/values-vi/strings.xml +++ b/app/src/main/res/values-vi/strings.xml @@ -119,13 +119,6 @@ Trình duyệt Tùy chọn nhà phát triển 17.5.xxxxx trở lên không được hỗ trợ - Cuộc gọi Máy ảnh Mở khóa hình mờ AI @@ -187,8 +180,6 @@ Đồng hồ Mở khóa hoạt ảnh đồng hồ hẹn giờ Phiên bản 13.65.0 trở lên không được hỗ trợ - Gập Luôn gập Mở rộng @@ -210,8 +201,6 @@ Tùy chỉnh Chọn chế độ Thêm Hook - Đa phương tiện Đổ chuông Thông báo @@ -223,7 +212,6 @@ Bạn có chắc muốn tắt ứng dụng này? Khởi động lại để áp dụng Tải xuống - Trình chỉnh sửa Kích hoạt Tính năng @@ -415,10 +403,8 @@ Hiển thị tiện ích MIUI Hiển thị tiện ích MIUI trên trang tiện ích Android Mô-đun chưa được kích hoạt - Điện thoại Ẩn nhạc chuông - Trí tuệ xuất sắc Kiểm soát đám mây Vô hiệu hóa kiểm soát đám mây @@ -484,11 +470,7 @@ Đây là một tính năng có rủi ro cao, bất kỳ vấn đề nào phát sinh từ việc này sẽ do người dùng chịu, vui lòng sao lưu baseband của bạn cẩn thận. Nhập *#*#MODEMTEST#*#* trên giao diện quay số để mở Cài đặt MTB Âm nhạc Loại bỏ quảng cáo - Thông báo - Tất cả Âm thanh Tài liệu @@ -527,18 +509,15 @@ Ngăn chặn tắt ứng dụng nền Có thể tăng mức tiêu thụ điện năng Khoá FPS tối đa - + Sao chép vào clipboard. + Mặc định + Tùy chỉnh màu + Lựa chọn màu + Màu cài đặt sẵn + Xác nhận lựa chọn + Độ trong suốt + Tắt + Bật Đề xuất Ghi âm Sau khi đặt lại cấu hình mô-đun, tất cả dữ liệu của nó sẽ bị xóa! @@ -572,7 +551,6 @@ Mở khóa giới hạn cắt hình Vị trí lưu ảnh chụp màn hình /Pictures/Screenshots Tìm kiếm - Bảo mật Sửa đổi cách sắp xếp mặc định của danh sách quản lý ứng dụng Sắp xếp danh sách quản lý ứng dụng @@ -633,7 +611,6 @@ Khóa 100 điểm và vô hiệu hóa tối ưu hóa Chỉ hiển thị trong chế độ chỉnh sửa Chỉ hiện khi đang vuốt màn hình - Cài đặt Sao lưu cài đặt module Khắc phục sự cố @@ -662,7 +639,6 @@ Chỉ ẩn khi không kết nối Luôn hiện Chỉ hiện khi đổ chuông - Phím bật 5G nhanh Chế độ ngoài trời Mạng 5G @@ -971,7 +947,6 @@ Chức năng này là chức năng thử nghiệm có độ ổn định cao"Thanh trạng thái Hẹn giờ mở rộng Hệ thống - Chủ đề Vá chủ đề Vô hiệu quảng cáo diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 806712500..2f7e94044 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -20,6 +20,35 @@ 提示 模块暂未激活 + 高级 + 未设置 + 复制 + 更多 + 清空 + + 已开启 + 已关闭 + 已将 %1$s 复制到剪贴板。 + 默认 + 选择颜色 + 预置颜色 + 自定义颜色 + 透明度 + 确认选择 + + 转到首页 + 转到上一层级 + 返回 + 全选 + 取消 + 确认 + 全选 + 全不选 + 删除 + 取消 + 搜索 + 更多 + 顶部边距 底部边距 左侧间距 diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml index 0c2151ad9..d6a01ca02 100644 --- a/app/src/main/res/values-zh-rHK/strings.xml +++ b/app/src/main/res/values-zh-rHK/strings.xml @@ -1022,39 +1022,16 @@ 只能識別翻譯中文、英文 底部邊距 頂部邊距 - + 已將%1$s複製到剪貼簿。 + 自訂顏色 + 預設 + 選擇顏色 + 預設顏色 + 確認選擇 + 透明度 + 已關閉 + 已開啟 + 未設定 + 進階 + 複製 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 3573fcdc9..897ea5890 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -1022,39 +1022,16 @@ 只能識別翻譯中文、英文 底部邊距 頂部邊距 - + 已將%1$s複製到剪貼簿。 + 自訂顏色 + 預設 + 選擇顏色 + 預設顏色 + 確認選擇 + 透明度 + 已關閉 + 已開啟 + 未設定 + 進階 + 複製 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 1545c8f25..759fa164f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1041,4 +1041,32 @@ Bottom margin Top margin Shortcut + %1$s%2$s + High level + Not set + Copy + Turned on + Turned off + Copied %1$s to clipboard. + Default + Choose the color + Preset color + Custom color + Transparency + Confirm selection + Back to the homepage + Back to the previous level + Back + Select all + Cancel + Ok + Select all + Unselect all + Delete + Cancel + Search + More + More + More + Clear up \ No newline at end of file From 53ed33267fb92beaae68485b6c862eb77f840891 Mon Sep 17 00:00:00 2001 From: mu7220 <80700814+mu7220@users.noreply.github.com> Date: Sun, 11 Jun 2023 23:53:02 +0800 Subject: [PATCH 03/24] =?UTF-8?q?=E4=BC=98=E5=8C=96=20=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/thememanager/ThemeCrackNew.kt | 4 ++-- .../thememanager/ThemeManagerDexKit.java | 6 +++-- .../various/NoAccessDeviceLogsRequest.kt | 22 +++++++++++-------- 3 files changed, 19 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/com/sevtinge/cemiuiler/module/thememanager/ThemeCrackNew.kt b/app/src/main/java/com/sevtinge/cemiuiler/module/thememanager/ThemeCrackNew.kt index 020be6b80..3c4499f6d 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/module/thememanager/ThemeCrackNew.kt +++ b/app/src/main/java/com/sevtinge/cemiuiler/module/thememanager/ThemeCrackNew.kt @@ -39,6 +39,7 @@ class ThemeCrackNew : BaseHook() { it.result = false } } + val drmResult = mThemeManagerResultMethodsMap["DrmResult"]!! for (descriptor in drmResult) { try { @@ -80,8 +81,7 @@ class ThemeCrackNew : BaseHook() { } val productId = it.thisObject.getObjectField(resource.name) - ?.callMethod("getProductId") - .toString() + ?.callMethod("getProductId").toString() val strPath = "/storage/emulated/0/Android/data/com.android.thememanager/files/MIUI/theme/.data/rights/theme/${productId}-largeicons.mra" val file = File(strPath) diff --git a/app/src/main/java/com/sevtinge/cemiuiler/module/thememanager/ThemeManagerDexKit.java b/app/src/main/java/com/sevtinge/cemiuiler/module/thememanager/ThemeManagerDexKit.java index 1075a66b0..427a5ebb1 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/module/thememanager/ThemeManagerDexKit.java +++ b/app/src/main/java/com/sevtinge/cemiuiler/module/thememanager/ThemeManagerDexKit.java @@ -26,8 +26,10 @@ public void init() { mThemeManagerResultMethodsMap = bridge.batchFindMethodsUsingStrings( BatchFindArgs.builder() - .addQuery("DrmResult", List.of("theme", "ThemeManagerTag", "/system")) - .addQuery("LargeIcon", List.of("apply failed", "/data/system/theme/large_icons/", "default_large_icon_product_id")) + .addQuery("DrmResult", List.of("theme", "ThemeManagerTag", "/system", "check rights isLegal:")) + .addQuery("LargeIcon", List.of( + "apply failed", "/data/system/theme/large_icons/", "default_large_icon_product_id", "largeicons", "relativePackageList is empty" + )) .matchType(MatchType.CONTAINS) .build() ); diff --git a/app/src/main/java/com/sevtinge/cemiuiler/module/various/NoAccessDeviceLogsRequest.kt b/app/src/main/java/com/sevtinge/cemiuiler/module/various/NoAccessDeviceLogsRequest.kt index b84ce7c5e..7e9b91957 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/module/various/NoAccessDeviceLogsRequest.kt +++ b/app/src/main/java/com/sevtinge/cemiuiler/module/various/NoAccessDeviceLogsRequest.kt @@ -1,21 +1,25 @@ package com.sevtinge.cemiuiler.module.various +import com.github.kyuubiran.ezxhelper.ClassUtils.loadClass +import com.github.kyuubiran.ezxhelper.HookFactory.`-Static`.createHooks +import com.github.kyuubiran.ezxhelper.finders.MethodFinder.`-Static`.methodFinder import com.sevtinge.cemiuiler.module.base.BaseHook -import com.sevtinge.cemiuiler.utils.Helpers import de.robv.android.xposed.XposedHelpers object NoAccessDeviceLogsRequest : BaseHook() { override fun init() { - Helpers.hookAllMethods( - "com.android.server.logcat.LogcatManagerService", - lpparam.classLoader, - "onLogAccessRequested", - object : MethodHook() { - override fun before(param: MethodHookParam) { + try { + loadClass("com.android.server.logcat.LogcatManagerService").methodFinder().filter { + name == "onLogAccessRequested" + }.toList().createHooks { + before { param -> XposedHelpers.callMethod(param.thisObject, "declineRequest", param.args[0]) param.result = null } - }) + } + } catch (t: Throwable) { + logE(t) + } } -} \ No newline at end of file +} From 5d681b4ae026dc47d2feb630185615da07e89a0a Mon Sep 17 00:00:00 2001 From: mu7220 <80700814+mu7220@users.noreply.github.com> Date: Mon, 12 Jun 2023 01:11:55 +0800 Subject: [PATCH 04/24] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20=E9=9A=90=E8=97=8F?= =?UTF-8?q?=E6=85=A2=E9=80=9F=E4=B8=8B=E5=81=B6=E7=8E=B0=E9=80=9A=E7=9F=A5?= =?UTF-8?q?=E6=A0=8F=E5=87=BA=E7=8E=B0=E5=8D=A0=E4=BD=8D=E7=A9=BA=E7=99=BD?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/systemui/statusbar/network/NetworkSpeed.kt | 6 +++--- app/src/main/res/values/strings.xml | 1 - 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/statusbar/network/NetworkSpeed.kt b/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/statusbar/network/NetworkSpeed.kt index 3b06865f7..c3c483a78 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/statusbar/network/NetworkSpeed.kt +++ b/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/statusbar/network/NetworkSpeed.kt @@ -198,7 +198,7 @@ object NetworkSpeed : BaseHook() { !mPrefsMap.getBoolean("system_ui_statusbar_network_speed_fakedualrow") ) { if (hideLow && (txSpeed + rxSpeed) < lowLevel) { - param.args[0] = "".trimIndent() + param.args[0] = "" } else { param.args[0] = """ $tx @@ -207,13 +207,13 @@ object NetworkSpeed : BaseHook() { } } else if (mPrefsMap.getBoolean("system_ui_statusbar_network_speed_fakedualrow")) { if (hideLow && (txSpeed + rxSpeed) < lowLevel) { - param.args[0] = "".trimIndent() + param.args[0] = "" } else { param.args[0] = ax.trimIndent() } } else { if (hideLow && (txSpeed + rxSpeed) < lowLevel) { - param.args[0] = "".trimIndent() + param.args[0] = "" } } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 759fa164f..d447344bc 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1066,7 +1066,6 @@ Cancel Search More - More More Clear up \ No newline at end of file From 62be035d8f06132ca89767daceb0cbae8f9d6684 Mon Sep 17 00:00:00 2001 From: mu7220 <80700814+mu7220@users.noreply.github.com> Date: Mon, 12 Jun 2023 01:56:03 +0800 Subject: [PATCH 05/24] =?UTF-8?q?=E4=BC=98=E5=8C=96=20=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cemiuiler/module/SecurityCenter.java | 5 +- .../cemiuiler/module/SystemFramework.java | 5 +- .../sevtinge/cemiuiler/module/SystemUI.java | 5 +- .../cemiuiler/module/base/SystemUIHook.java | 6 +-- .../systemframework/PackagePermissions.java | 8 +-- .../VolumeSeparateControl.java | 12 +++-- .../module/systemui/StatusBarActions.java | 23 ++++---- .../module/systemui/controlcenter/CCGrid.java | 5 +- .../systemui/controlcenter/QSFiveGTile.java | 7 ++- .../module/systemui/plugin/PluginHelper.java | 5 +- .../cemiuiler/ui/fragment/MainFragment.java | 7 +-- .../ui/fragment/SystemSettingsFragment.java | 10 ++-- .../ui/fragment/ThemeManagerFragment.java | 5 +- .../ui/fragment/VariousFragment.java | 9 ++-- .../fragment/framework/FreeFormSettings.java | 8 +-- .../ui/fragment/framework/OtherSettings.java | 8 +-- .../ui/fragment/home/HomeDrawerSettings.java | 5 +- .../ui/fragment/home/HomeOtherSettings.java | 5 +- .../ui/fragment/home/HomeTitleSettings.java | 7 +-- .../systemui/ControlCenterSettings.java | 6 ++- .../fragment/systemui/StatusBarSettings.java | 5 +- .../systemui/SystemUIOtherSettings.java | 5 +- .../statusbar/IconManageSettings.java | 7 +-- .../NetworkSpeedIndicatorSettings.java | 5 +- .../cemiuiler/utils/devicesdk/AppUtils.kt | 14 ----- .../cemiuiler/utils/devicesdk/SdkHelper.java | 54 ------------------- .../cemiuiler/utils/devicesdk/SystemSDK.kt | 32 +++++++++++ 27 files changed, 136 insertions(+), 137 deletions(-) delete mode 100644 app/src/main/java/com/sevtinge/cemiuiler/utils/devicesdk/SdkHelper.java create mode 100644 app/src/main/java/com/sevtinge/cemiuiler/utils/devicesdk/SystemSDK.kt diff --git a/app/src/main/java/com/sevtinge/cemiuiler/module/SecurityCenter.java b/app/src/main/java/com/sevtinge/cemiuiler/module/SecurityCenter.java index a9f129ad1..848bdaba1 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/module/SecurityCenter.java +++ b/app/src/main/java/com/sevtinge/cemiuiler/module/SecurityCenter.java @@ -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; @@ -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 { @@ -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")); diff --git a/app/src/main/java/com/sevtinge/cemiuiler/module/SystemFramework.java b/app/src/main/java/com/sevtinge/cemiuiler/module/SystemFramework.java index a85ff9d97..a919733d8 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/module/SystemFramework.java +++ b/app/src/main/java/com/sevtinge/cemiuiler/module/SystemFramework.java @@ -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; @@ -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 { @@ -104,7 +105,7 @@ public void handleLoadPackage() { initHook(new LocationSimulation(), false); // 核心破解 - if (SdkHelper.isAndroidTiramisu()) { + if (isAndroidT()) { initHook(BypassSignCheckForT.INSTANCE, mPrefsMap.getBoolean("system_framework_core_patch_auth_creak")); } diff --git a/app/src/main/java/com/sevtinge/cemiuiler/module/SystemUI.java b/app/src/main/java/com/sevtinge/cemiuiler/module/SystemUI.java index a13c1bad4..240af52ab 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/module/SystemUI.java +++ b/app/src/main/java/com/sevtinge/cemiuiler/module/SystemUI.java @@ -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; @@ -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; @@ -209,7 +210,7 @@ public void handleLoadPackage() { 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")); diff --git a/app/src/main/java/com/sevtinge/cemiuiler/module/base/SystemUIHook.java b/app/src/main/java/com/sevtinge/cemiuiler/module/base/SystemUIHook.java index 8359107d0..3a9d15989 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/module/base/SystemUIHook.java +++ b/app/src/main/java/com/sevtinge/cemiuiler/module/base/SystemUIHook.java @@ -1,8 +1,8 @@ package com.sevtinge.cemiuiler.module.base; -import android.os.Build; +import static com.sevtinge.cemiuiler.utils.devicesdk.SdkHelper.isAndroidMoreVersion; -import com.sevtinge.cemiuiler.utils.devicesdk.SdkHelper; +import android.os.Build; import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam; @@ -15,7 +15,7 @@ public abstract class SystemUIHook extends BaseHook { public void setLoadPackageParam(LoadPackageParam param) { super.setLoadPackageParam(param); - if (SdkHelper.isAndroidMoreVersion(Build.VERSION_CODES.TIRAMISU)) { + if (isAndroidMoreVersion(Build.VERSION_CODES.TIRAMISU)) { mPluginLoaderClassName = "com.android.systemui.shared.plugins.PluginInstance$Factory"; } else { mPluginLoaderClassName = "com.android.systemui.shared.plugins.PluginManagerImpl"; diff --git a/app/src/main/java/com/sevtinge/cemiuiler/module/systemframework/PackagePermissions.java b/app/src/main/java/com/sevtinge/cemiuiler/module/systemframework/PackagePermissions.java index d57289f75..aae9dcd8f 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/module/systemframework/PackagePermissions.java +++ b/app/src/main/java/com/sevtinge/cemiuiler/module/systemframework/PackagePermissions.java @@ -1,12 +1,14 @@ package com.sevtinge.cemiuiler.module.systemframework; +import static com.sevtinge.cemiuiler.utils.devicesdk.SdkHelper.isAndroidMoreVersion; + import android.content.pm.ApplicationInfo; import android.content.pm.ResolveInfo; +import android.os.Build; import com.sevtinge.cemiuiler.module.base.BaseHook; import com.sevtinge.cemiuiler.utils.Helpers; import com.sevtinge.cemiuiler.utils.LogUtils; -import com.sevtinge.cemiuiler.utils.devicesdk.SdkHelper; import java.util.ArrayList; import java.util.Arrays; @@ -22,7 +24,7 @@ public void init() { systemPackages.add(Helpers.mAppModulePkg); // Allow signature level permissions for module - String PMSCls = SdkHelper.isAndroidTiramisu() ? "com.android.server.pm.permission.PermissionManagerServiceImpl" : "com.android.server.pm.permission.PermissionManagerService"; + String PMSCls = isAndroidMoreVersion(Build.VERSION_CODES.TIRAMISU) ? "com.android.server.pm.permission.PermissionManagerServiceImpl" : "com.android.server.pm.permission.PermissionManagerService"; // Allow signature level permissions for module hookAllMethods(PMSCls, "shouldGrantPermissionBySignature", new MethodHook() { @@ -44,7 +46,7 @@ protected void before(MethodHookParam param) { // Make module appear as system app - String ActQueryService = SdkHelper.isAndroidTiramisu() ? "com.android.server.pm.ComputerEngine" : "com.android.server.pm.PackageManagerService"; + String ActQueryService = isAndroidMoreVersion(Build.VERSION_CODES.TIRAMISU) ? "com.android.server.pm.ComputerEngine" : "com.android.server.pm.PackageManagerService"; hookAllMethods(ActQueryService, "queryIntentActivitiesInternal", new MethodHook() { @Override @SuppressWarnings("unchecked") diff --git a/app/src/main/java/com/sevtinge/cemiuiler/module/systemframework/VolumeSeparateControl.java b/app/src/main/java/com/sevtinge/cemiuiler/module/systemframework/VolumeSeparateControl.java index 8e2e0ed64..f2a45f6f8 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/module/systemframework/VolumeSeparateControl.java +++ b/app/src/main/java/com/sevtinge/cemiuiler/module/systemframework/VolumeSeparateControl.java @@ -1,10 +1,13 @@ package com.sevtinge.cemiuiler.module.systemframework; +import static com.sevtinge.cemiuiler.utils.devicesdk.SdkHelper.isAndroidMoreVersion; +import static com.sevtinge.cemiuiler.utils.devicesdk.SdkHelper.isAndroidTiramisu; + +import android.os.Build; import android.provider.Settings; import android.util.SparseIntArray; import com.sevtinge.cemiuiler.module.base.BaseHook; -import com.sevtinge.cemiuiler.utils.devicesdk.SdkHelper; import java.util.Set; @@ -22,11 +25,14 @@ public void init() { findAndHookMethod(mAudioService, "updateStreamVolumeAlias", boolean.class, String.class, new MethodHook() { @Override protected void after(MethodHookParam param) throws Throwable { - int[] mStreamVolumeAlias = (int[]) (SdkHelper.isAndroidTiramisu() ? XposedHelpers.getStaticObjectField(mAudioService, "mStreamVolumeAlias") : XposedHelpers.getObjectField(param.thisObject, "mStreamVolumeAlias")); + int[] mStreamVolumeAlias = + (int[]) (isAndroidMoreVersion(Build.VERSION_CODES.TIRAMISU) ? + XposedHelpers.getStaticObjectField(mAudioService, "mStreamVolumeAlias") : + XposedHelpers.getObjectField(param.thisObject, "mStreamVolumeAlias")); mStreamVolumeAlias[1] = 1; mStreamVolumeAlias[5] = 5; - if (SdkHelper.isAndroidTiramisu()) { + if (isAndroidTiramisu()) { XposedHelpers.setStaticObjectField(mAudioService, "mStreamVolumeAlias", mStreamVolumeAlias); } else { XposedHelpers.setObjectField(param.thisObject, "mStreamVolumeAlias", mStreamVolumeAlias); diff --git a/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/StatusBarActions.java b/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/StatusBarActions.java index 35a97b76c..379397017 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/StatusBarActions.java +++ b/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/StatusBarActions.java @@ -1,5 +1,7 @@ package com.sevtinge.cemiuiler.module.systemui; +import static com.sevtinge.cemiuiler.utils.devicesdk.SdkHelper.isAndroidMoreVersion; + import android.annotation.SuppressLint; import android.content.BroadcastReceiver; import android.content.Context; @@ -7,13 +9,13 @@ import android.content.IntentFilter; import android.media.AudioManager; import android.os.Binder; +import android.os.Build; import android.os.Handler; import android.os.Process; import android.view.View; import com.sevtinge.cemiuiler.module.base.BaseHook; import com.sevtinge.cemiuiler.utils.Helpers; -import com.sevtinge.cemiuiler.utils.devicesdk.SdkHelper; import de.robv.android.xposed.XposedBridge; import de.robv.android.xposed.XposedHelpers; @@ -26,7 +28,7 @@ public class StatusBarActions extends BaseHook { @Override public void init() { - if (SdkHelper.isAndroidTiramisu()) { + if (isAndroidMoreVersion(Build.VERSION_CODES.TIRAMISU)) { mStatusBarClass = findClassIfExists("com.android.systemui.statusbar.phone.CentralSurfacesImpl"); } else { mStatusBarClass = findClassIfExists("com.android.systemui.statusbar.phone.StatusBar"); @@ -76,24 +78,21 @@ public void onReceive(Context context, Intent intent) { if (action == null) return; switch (action) { - case ACTION_PREFIX + "ClearMemory": + case ACTION_PREFIX + "ClearMemory" -> { Intent clearIntent = new Intent("com.android.systemui.taskmanager.Clear"); clearIntent.putExtra("show_toast", true); // clearIntent.putExtra("clean_type", -1); context.sendBroadcast(clearIntent); - break; - - case ACTION_PREFIX + "OpenRecents": + } + case ACTION_PREFIX + "OpenRecents" -> { Intent recentIntent = new Intent("SYSTEM_ACTION_RECENTS"); recentIntent.setPackage("com.android.systemui"); context.sendBroadcast(recentIntent); - break; + } - case ACTION_PREFIX + "OpenVolumeDialog": - OpenVolumeDialogs(context); - break; + case ACTION_PREFIX + "OpenVolumeDialog" -> OpenVolumeDialogs(context); - case ACTION_PREFIX + "OpenNotificationCenter": + case ACTION_PREFIX + "OpenNotificationCenter" -> { try { Object mNotificationPanel = XposedHelpers.getObjectField(mStatusBar, "mNotificationPanel"); boolean mPanelExpanded = (boolean) XposedHelpers.getObjectField(mNotificationPanel, "mPanelExpanded"); @@ -116,7 +115,7 @@ public void onReceive(Context context, Intent intent) { XposedHelpers.callMethod(context.getSystemService("statusbar"), "expandNotificationsPanel"); Binder.restoreCallingIdentity(token); } - break; + } } } }; diff --git a/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/controlcenter/CCGrid.java b/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/controlcenter/CCGrid.java index f28b31028..1c8a42c0b 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/controlcenter/CCGrid.java +++ b/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/controlcenter/CCGrid.java @@ -1,5 +1,7 @@ package com.sevtinge.cemiuiler.module.systemui.controlcenter; +import static com.sevtinge.cemiuiler.utils.devicesdk.SdkHelper.isAndroidMoreVersion; + import android.annotation.SuppressLint; import android.content.Context; import android.content.pm.ApplicationInfo; @@ -14,7 +16,6 @@ import com.sevtinge.cemiuiler.R; import com.sevtinge.cemiuiler.module.base.BaseHook; import com.sevtinge.cemiuiler.utils.Helpers; -import com.sevtinge.cemiuiler.utils.devicesdk.SdkHelper; import java.util.ArrayList; import java.util.Iterator; @@ -59,7 +60,7 @@ protected void after(MethodHookParam param) throws Throwable { } }); - String pluginLoaderClass = SdkHelper.isAndroidMoreVersion(Build.VERSION_CODES.TIRAMISU) ? "com.android.systemui.shared.plugins.PluginInstance$Factory" : "com.android.systemui.shared.plugins.PluginManagerImpl"; + String pluginLoaderClass = isAndroidMoreVersion(Build.VERSION_CODES.TIRAMISU) ? "com.android.systemui.shared.plugins.PluginInstance$Factory" : "com.android.systemui.shared.plugins.PluginManagerImpl"; Helpers.hookAllMethods(pluginLoaderClass, lpparam.classLoader, "getClassLoader", new MethodHook() { private boolean isHooked = false; diff --git a/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/controlcenter/QSFiveGTile.java b/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/controlcenter/QSFiveGTile.java index 0097a97e1..f2a0f46c8 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/controlcenter/QSFiveGTile.java +++ b/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/controlcenter/QSFiveGTile.java @@ -1,10 +1,13 @@ package com.sevtinge.cemiuiler.module.systemui.controlcenter; +import static com.sevtinge.cemiuiler.utils.devicesdk.SdkHelper.isAndroidMoreVersion; + import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.res.Resources; import android.database.ContentObserver; +import android.os.Build; import android.os.Handler; import android.provider.Settings; import android.view.View; @@ -36,10 +39,10 @@ public void init() { int mFiveGIconResId = mResHook.addResource("ic_control_center_5g_toggle_on", R.drawable.ic_control_center_5g_toggle_on); int mFiveGIconOffResId = mResHook.addResource("ic_control_center_5g_toggle_off", R.drawable.ic_control_center_5g_toggle_off); - mQSFactoryClsName = SdkHelper.ATLEAST_T ? "com.android.systemui.qs.tileimpl.MiuiQSFactory" : + mQSFactoryClsName = isAndroidMoreVersion(Build.VERSION_CODES.TIRAMISU) ? "com.android.systemui.qs.tileimpl.MiuiQSFactory" : "com.android.systemui.qs.tileimpl.QSFactoryImpl"; - mNfcTileClsName = SdkHelper.ATLEAST_T ? "com.android.systemui.qs.tiles.MiuiNfcTile" : + mNfcTileClsName = isAndroidMoreVersion(Build.VERSION_CODES.TIRAMISU) ? "com.android.systemui.qs.tiles.MiuiNfcTile" : "com.android.systemui.qs.tiles.NfcTile"; mQSFactory = findClassIfExists(mQSFactoryClsName); diff --git a/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/plugin/PluginHelper.java b/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/plugin/PluginHelper.java index 520669614..270c871ad 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/plugin/PluginHelper.java +++ b/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/plugin/PluginHelper.java @@ -1,8 +1,9 @@ package com.sevtinge.cemiuiler.module.systemui.plugin; -import static com.sevtinge.cemiuiler.utils.devicesdk.SdkHelper.ATLEAST_T; +import static com.sevtinge.cemiuiler.utils.devicesdk.SdkHelper.isAndroidMoreVersion; import android.content.pm.ApplicationInfo; +import android.os.Build; import com.sevtinge.cemiuiler.module.base.BaseHook; @@ -12,7 +13,7 @@ public class PluginHelper extends BaseHook { @Override public void init() { - String pluginLoaderClass = ATLEAST_T ? "com.android.systemui.shared.plugins.PluginInstance$Factory" : "com.android.systemui.shared.plugins.PluginManagerImpl"; + String pluginLoaderClass = isAndroidMoreVersion(Build.VERSION_CODES.TIRAMISU) ? "com.android.systemui.shared.plugins.PluginInstance$Factory" : "com.android.systemui.shared.plugins.PluginManagerImpl"; hookAllMethods(pluginLoaderClass, "getClassLoader", new MethodHook() { private boolean isHooked = false; diff --git a/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/MainFragment.java b/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/MainFragment.java index fcef35ab1..c64a2ebd7 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/MainFragment.java +++ b/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/MainFragment.java @@ -1,8 +1,9 @@ package com.sevtinge.cemiuiler.ui.fragment; +import static com.sevtinge.cemiuiler.utils.devicesdk.SystemSDKKt.isAndroidR; + import com.sevtinge.cemiuiler.R; import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment; -import com.sevtinge.cemiuiler.utils.devicesdk.SdkHelper; import moralnorm.preference.Preference; @@ -21,7 +22,7 @@ public void initPrefs() { mPowerSetting = findPreference("prefs_key_powerkeeper"); mMTB = findPreference("prefs_key_mtb"); - mPowerSetting.setVisible(!SdkHelper.isAndroidR()); - mMTB.setVisible(!SdkHelper.isAndroidR()); + mPowerSetting.setVisible(!isAndroidR()); + mMTB.setVisible(!isAndroidR()); } } diff --git a/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/SystemSettingsFragment.java b/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/SystemSettingsFragment.java index 02550aed6..53448456f 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/SystemSettingsFragment.java +++ b/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/SystemSettingsFragment.java @@ -1,11 +1,13 @@ package com.sevtinge.cemiuiler.ui.fragment; +import static com.sevtinge.cemiuiler.utils.devicesdk.SystemSDKKt.isAndroidR; +import static com.sevtinge.cemiuiler.utils.devicesdk.SystemSDKKt.isMoreMiuiVersion; + import android.view.View; import com.sevtinge.cemiuiler.R; import com.sevtinge.cemiuiler.ui.base.BaseSettingsActivity; import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment; -import com.sevtinge.cemiuiler.utils.devicesdk.SdkHelper; import moralnorm.preference.PreferenceCategory; import moralnorm.preference.SwitchPreference; @@ -33,8 +35,8 @@ public void initPrefs() { mHighMode = findPreference("prefs_key_system_settings_develop_speed"); mAreaScreenshot = findPreference("prefs_key_system_settings_area_screenshot"); mKnuckleFunction = findPreference("prefs_key_system_settings_knuckle_function"); - mHighMode.setVisible(!SdkHelper.isAndroidR()); - mAreaScreenshot.setVisible(SdkHelper.isAndroidR()); - mKnuckleFunction.setVisible(SdkHelper.PROP_MIUI_VERSION_CODE >= 13); + mHighMode.setVisible(!isAndroidR()); + mAreaScreenshot.setVisible(isAndroidR()); + mKnuckleFunction.setVisible(isMoreMiuiVersion(13f)); } } diff --git a/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/ThemeManagerFragment.java b/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/ThemeManagerFragment.java index f81928a7c..ac7440e5b 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/ThemeManagerFragment.java +++ b/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/ThemeManagerFragment.java @@ -1,11 +1,12 @@ package com.sevtinge.cemiuiler.ui.fragment; +import static com.sevtinge.cemiuiler.utils.devicesdk.SystemSDKKt.isMoreMiuiVersion; + import android.view.View; import com.sevtinge.cemiuiler.R; import com.sevtinge.cemiuiler.ui.base.BaseSettingsActivity; import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment; -import com.sevtinge.cemiuiler.utils.devicesdk.SdkHelper; import moralnorm.preference.PreferenceCategory; import moralnorm.preference.SwitchPreference; @@ -34,7 +35,7 @@ public void initPrefs() { mVersionCodeModifyPreferenceCat = findPreference("prefs_key_theme_manager_version_code_modify_cat"); mVersionCodeModifyPreference = findPreference("prefs_key_theme_manager_version_code_modify"); - if (SdkHelper.PROP_MIUI_VERSION_CODE <= 13) { + if (!isMoreMiuiVersion(13f)) { mVersionCodeModifyPreferenceCat.setVisible(true); } else { mVersionCodeModifyPreferenceCat.setVisible(false); diff --git a/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/VariousFragment.java b/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/VariousFragment.java index d381675a5..7d9f09db6 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/VariousFragment.java +++ b/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/VariousFragment.java @@ -1,10 +1,13 @@ package com.sevtinge.cemiuiler.ui.fragment; +import static com.sevtinge.cemiuiler.utils.devicesdk.SystemSDKKt.isAndroidT; +import static com.sevtinge.cemiuiler.utils.devicesdk.SystemSDKKt.isMoreAndroidVersion; +import static com.sevtinge.cemiuiler.utils.devicesdk.SystemSDKKt.isMoreMiuiVersion; + import android.os.Build; import com.sevtinge.cemiuiler.R; import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment; -import com.sevtinge.cemiuiler.utils.devicesdk.SdkHelper; import moralnorm.preference.SwitchPreference; @@ -23,8 +26,8 @@ public void initPrefs() { mDisableBluetoothRestrict = findPreference("prefs_key_various_disable_bluetooth_restrict"); mDisableDeviceLog = findPreference("prefs_key_various_disable_access_device_logs"); - mDisableBluetoothRestrict.setVisible(SdkHelper.IS_MIUI_14 || Build.VERSION.SDK_INT >= Build.VERSION_CODES.S); - mDisableDeviceLog.setVisible(SdkHelper.isAndroidTiramisu()); + mDisableBluetoothRestrict.setVisible(isMoreMiuiVersion(14f) && isMoreAndroidVersion(Build.VERSION_CODES.S)); + mDisableDeviceLog.setVisible(isAndroidT()); mDisableBluetoothRestrict.setOnPreferenceChangeListener((preference, o) -> true); mDisableDeviceLog.setOnPreferenceChangeListener((preference, o) -> true); diff --git a/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/framework/FreeFormSettings.java b/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/framework/FreeFormSettings.java index b7b834e0f..6987e54ed 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/framework/FreeFormSettings.java +++ b/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/framework/FreeFormSettings.java @@ -1,11 +1,13 @@ package com.sevtinge.cemiuiler.ui.fragment.framework; +import static com.sevtinge.cemiuiler.utils.devicesdk.SystemSDKKt.isAndroidR; +import static com.sevtinge.cemiuiler.utils.devicesdk.SystemSDKKt.isMoreMiuiVersion; + import android.view.View; import com.sevtinge.cemiuiler.R; import com.sevtinge.cemiuiler.ui.base.BaseSettingsActivity; import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment; -import com.sevtinge.cemiuiler.utils.devicesdk.SdkHelper; import moralnorm.preference.PreferenceCategory; import moralnorm.preference.SwitchPreference; @@ -30,7 +32,7 @@ public void initPrefs() { mMoreFreeForm = findPreference("prefs_key_system_framework_freeform_count"); mSmallFreeForm = findPreference("prefs_key_system_framework_freeform_bubble_title"); - mMoreFreeForm.setVisible(SdkHelper.PROP_MIUI_VERSION_CODE >= 13); - mSmallFreeForm.setVisible(!SdkHelper.isAndroidR()); + mMoreFreeForm.setVisible(isMoreMiuiVersion(13f)); + mSmallFreeForm.setVisible(!isAndroidR()); } } diff --git a/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/framework/OtherSettings.java b/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/framework/OtherSettings.java index 260faa52e..7d062caaf 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/framework/OtherSettings.java +++ b/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/framework/OtherSettings.java @@ -1,8 +1,10 @@ package com.sevtinge.cemiuiler.ui.fragment.framework; +import static com.sevtinge.cemiuiler.utils.devicesdk.SystemSDKKt.isAndroidR; +import static com.sevtinge.cemiuiler.utils.devicesdk.SystemSDKKt.isAndroidT; + import com.sevtinge.cemiuiler.R; import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment; -import com.sevtinge.cemiuiler.utils.devicesdk.SdkHelper; import moralnorm.preference.Preference; import moralnorm.preference.SwitchPreference; @@ -22,9 +24,9 @@ public int getContentResId() { @Override public void initPrefs() { mAppLinkVerify = findPreference("prefs_key_system_framework_disable_app_link_verify"); - mAppLinkVerify.setVisible(!SdkHelper.isAndroidR()); + mAppLinkVerify.setVisible(!isAndroidR()); mAppLinkVerify.setOnPreferenceChangeListener((preference, o) -> true); mUseOriginalAnim = findPreference("prefs_key_system_framework_other_use_original_animation"); - mUseOriginalAnim.setVisible(!SdkHelper.isAndroidTiramisu()); + mUseOriginalAnim.setVisible(!isAndroidT()); } } diff --git a/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/home/HomeDrawerSettings.java b/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/home/HomeDrawerSettings.java index c7f8cbd4f..a1212efe6 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/home/HomeDrawerSettings.java +++ b/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/home/HomeDrawerSettings.java @@ -1,11 +1,12 @@ package com.sevtinge.cemiuiler.ui.fragment.home; +import static com.sevtinge.cemiuiler.utils.devicesdk.SystemSDKKt.isAndroidR; + import android.view.View; import com.sevtinge.cemiuiler.R; import com.sevtinge.cemiuiler.ui.base.BaseSettingsActivity; import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment; -import com.sevtinge.cemiuiler.utils.devicesdk.SdkHelper; import moralnorm.preference.SwitchPreference; @@ -29,7 +30,7 @@ public View.OnClickListener addRestartListener() { @Override public void initPrefs() { mAllAppsContainerViewBlur = findPreference("prefs_key_home_drawer_blur"); - mAllAppsContainerViewBlur.setVisible(!SdkHelper.isAndroidR()); + mAllAppsContainerViewBlur.setVisible(!isAndroidR()); mAllAppsContainerViewBlur.setOnPreferenceChangeListener((preference, o) -> true); } diff --git a/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/home/HomeOtherSettings.java b/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/home/HomeOtherSettings.java index 981672dcc..e19c7df16 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/home/HomeOtherSettings.java +++ b/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/home/HomeOtherSettings.java @@ -1,11 +1,12 @@ package com.sevtinge.cemiuiler.ui.fragment.home; +import static com.sevtinge.cemiuiler.utils.devicesdk.SystemSDKKt.isAndroidT; + import android.view.View; import com.sevtinge.cemiuiler.R; import com.sevtinge.cemiuiler.ui.base.BaseSettingsActivity; import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment; -import com.sevtinge.cemiuiler.utils.devicesdk.SdkHelper; import moralnorm.preference.SwitchPreference; @@ -29,6 +30,6 @@ public View.OnClickListener addRestartListener() { @Override public void initPrefs() { mFixAndroidRS = findPreference("prefs_key_home_other_fix_android_r_s"); - mFixAndroidRS.setVisible(!SdkHelper.isAndroidTiramisu()); + mFixAndroidRS.setVisible(!isAndroidT()); } } diff --git a/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/home/HomeTitleSettings.java b/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/home/HomeTitleSettings.java index daef92946..d96e8783b 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/home/HomeTitleSettings.java +++ b/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/home/HomeTitleSettings.java @@ -1,11 +1,12 @@ package com.sevtinge.cemiuiler.ui.fragment.home; +import static com.sevtinge.cemiuiler.utils.devicesdk.SystemSDKKt.isAndroidT; + import android.view.View; import com.sevtinge.cemiuiler.R; import com.sevtinge.cemiuiler.ui.base.BaseSettingsActivity; import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment; -import com.sevtinge.cemiuiler.utils.devicesdk.SdkHelper; import moralnorm.preference.SwitchPreference; @@ -30,10 +31,10 @@ public View.OnClickListener addRestartListener() { @Override public void initPrefs() { mDisableMonoChrome = findPreference("prefs_key_home_other_icon_mono_chrome"); - mDisableMonoChrome.setVisible(SdkHelper.isAndroidTiramisu()); + mDisableMonoChrome.setVisible(isAndroidT()); mDisableMonoChrome.setOnPreferenceChangeListener((preference, o) -> true); mDisableMonetColor = findPreference("prefs_key_home_other_icon_monet_color"); - mDisableMonetColor.setVisible(SdkHelper.isAndroidTiramisu()); + mDisableMonetColor.setVisible(isAndroidT()); mDisableMonetColor.setOnPreferenceChangeListener((preference, o) -> true); } } diff --git a/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/systemui/ControlCenterSettings.java b/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/systemui/ControlCenterSettings.java index 6155f78d5..cea6c7a1f 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/systemui/ControlCenterSettings.java +++ b/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/systemui/ControlCenterSettings.java @@ -1,5 +1,8 @@ package com.sevtinge.cemiuiler.ui.fragment.systemui; +import static com.sevtinge.cemiuiler.utils.devicesdk.SystemSDKKt.isAndroidSv2; +import static com.sevtinge.cemiuiler.utils.devicesdk.SystemSDKKt.isAndroidS; + import android.provider.Settings; import android.view.View; import android.widget.SeekBar; @@ -8,7 +11,6 @@ import com.sevtinge.cemiuiler.prefs.SeekBarPreferenceEx; import com.sevtinge.cemiuiler.ui.base.BaseSettingsActivity; import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment; -import com.sevtinge.cemiuiler.utils.devicesdk.SdkHelper; import moralnorm.preference.SwitchPreference; @@ -32,7 +34,7 @@ public View.OnClickListener addRestartListener() { @Override public void initPrefs() { mFixMediaPanel = findPreference("prefs_key_system_ui_control_center_fix_media_control_panel"); - mFixMediaPanel.setVisible(SdkHelper.isAndroidS() || SdkHelper.isAndroidSv2()); + mFixMediaPanel.setVisible(isAndroidS() || isAndroidSv2()); ((SeekBarPreferenceEx) findPreference("prefs_key_system_control_center_old_qs_grid_columns")).setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override diff --git a/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/systemui/StatusBarSettings.java b/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/systemui/StatusBarSettings.java index 603fb7e1e..775346c33 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/systemui/StatusBarSettings.java +++ b/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/systemui/StatusBarSettings.java @@ -1,11 +1,12 @@ package com.sevtinge.cemiuiler.ui.fragment.systemui; +import static com.sevtinge.cemiuiler.utils.devicesdk.SystemSDKKt.isAndroidR; + import android.view.View; import com.sevtinge.cemiuiler.R; import com.sevtinge.cemiuiler.ui.base.BaseSettingsActivity; import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment; -import com.sevtinge.cemiuiler.utils.devicesdk.SdkHelper; import moralnorm.preference.Preference; @@ -29,6 +30,6 @@ public View.OnClickListener addRestartListener() { @Override public void initPrefs() { mDeviceStatus = findPreference("prefs_key_system_ui_status_bar_device"); - mDeviceStatus.setVisible(!SdkHelper.isAndroidR()); + mDeviceStatus.setVisible(!isAndroidR()); } } diff --git a/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/systemui/SystemUIOtherSettings.java b/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/systemui/SystemUIOtherSettings.java index 82e01f0c7..ad6629864 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/systemui/SystemUIOtherSettings.java +++ b/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/systemui/SystemUIOtherSettings.java @@ -1,11 +1,12 @@ package com.sevtinge.cemiuiler.ui.fragment.systemui; +import static com.sevtinge.cemiuiler.utils.devicesdk.SystemSDKKt.isAndroidR; + import android.view.View; import com.sevtinge.cemiuiler.R; import com.sevtinge.cemiuiler.ui.base.BaseSettingsActivity; import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment; -import com.sevtinge.cemiuiler.utils.devicesdk.SdkHelper; import moralnorm.preference.PreferenceCategory; @@ -29,6 +30,6 @@ public View.OnClickListener addRestartListener() { @Override public void initPrefs() { mMonetOverlay = findPreference("prefs_key_system_ui_monet"); - mMonetOverlay.setVisible(!SdkHelper.isAndroidR()); + mMonetOverlay.setVisible(!isAndroidR()); } } diff --git a/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/systemui/statusbar/IconManageSettings.java b/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/systemui/statusbar/IconManageSettings.java index b58c7370e..ccb88a01d 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/systemui/statusbar/IconManageSettings.java +++ b/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/systemui/statusbar/IconManageSettings.java @@ -1,12 +1,13 @@ package com.sevtinge.cemiuiler.ui.fragment.systemui.statusbar; +import static com.sevtinge.cemiuiler.utils.devicesdk.SystemSDKKt.isAndroidT; + import android.view.View; import com.sevtinge.cemiuiler.R; import com.sevtinge.cemiuiler.ui.base.BaseSettingsActivity; import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment; import com.sevtinge.cemiuiler.utils.PrefsUtils; -import com.sevtinge.cemiuiler.utils.devicesdk.SdkHelper; import moralnorm.preference.DropDownPreference; import moralnorm.preference.Preference; @@ -41,8 +42,8 @@ public void initPrefs() { UseNewHD = findPreference("prefs_key_system_ui_status_bar_use_new_hd"); IconNewHD = findPreference("prefs_key_system_ui_status_bar_icon_new_hd"); - UseNewHD.setVisible(SdkHelper.isAndroidTiramisu()); - IconNewHD.setVisible(SdkHelper.isAndroidTiramisu()); + UseNewHD.setVisible(isAndroidT()); + IconNewHD.setVisible(isAndroidT()); mAlarmClockIconN.setVisible(Integer.parseInt(PrefsUtils.mSharedPreferences.getString("prefs_key_system_ui_status_bar_icon_alarm_clock", "0")) == 3); diff --git a/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/systemui/statusbar/NetworkSpeedIndicatorSettings.java b/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/systemui/statusbar/NetworkSpeedIndicatorSettings.java index 3564ac83e..f05d27cd0 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/systemui/statusbar/NetworkSpeedIndicatorSettings.java +++ b/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/systemui/statusbar/NetworkSpeedIndicatorSettings.java @@ -1,11 +1,12 @@ package com.sevtinge.cemiuiler.ui.fragment.systemui.statusbar; +import static com.sevtinge.cemiuiler.utils.devicesdk.SystemSDKKt.isAndroidR; + import android.view.View; import com.sevtinge.cemiuiler.R; import com.sevtinge.cemiuiler.ui.base.BaseSettingsActivity; import com.sevtinge.cemiuiler.ui.fragment.base.SettingsPreferenceFragment; -import com.sevtinge.cemiuiler.utils.devicesdk.SdkHelper; import moralnorm.preference.SeekBarPreference; @@ -29,6 +30,6 @@ public View.OnClickListener addRestartListener() { @Override public void initPrefs() { mNetworkSpeedWidth = findPreference("prefs_key_system_ui_statusbar_network_speed_fixedcontent_width"); - mNetworkSpeedWidth.setVisible(!SdkHelper.isAndroidR()); + mNetworkSpeedWidth.setVisible(!isAndroidR()); } } diff --git a/app/src/main/java/com/sevtinge/cemiuiler/utils/devicesdk/AppUtils.kt b/app/src/main/java/com/sevtinge/cemiuiler/utils/devicesdk/AppUtils.kt index fab3e6cb4..ad3c5f68e 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/utils/devicesdk/AppUtils.kt +++ b/app/src/main/java/com/sevtinge/cemiuiler/utils/devicesdk/AppUtils.kt @@ -59,22 +59,8 @@ fun isAlpha(): Boolean = fun isPadDevice(): Boolean = DeviceHelper.isTablet() || DeviceHelper.isFoldDevice() -fun atLeastAndroidS(): Boolean = Build.VERSION.SDK_INT >= Build.VERSION_CODES.S - -fun atLeastAndroidT(): Boolean = Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU - fun checkVersionCode(): Long = getPackageInfoCompat(EzXHelper.appContext.packageName).longVersionCode -fun checkMiuiVersion(): Float = when (getProp("ro.miui.ui.version.name")) { - "V140" -> 14f - "V130" -> 13f - "V125" -> 12.5f - "V12" -> 12f - "V11" -> 11f - "V10" -> 10f - else -> 0f -} - fun checkAndroidVersion(): String = getProp("ro.build.version.release") /** diff --git a/app/src/main/java/com/sevtinge/cemiuiler/utils/devicesdk/SdkHelper.java b/app/src/main/java/com/sevtinge/cemiuiler/utils/devicesdk/SdkHelper.java deleted file mode 100644 index bb711d570..000000000 --- a/app/src/main/java/com/sevtinge/cemiuiler/utils/devicesdk/SdkHelper.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.sevtinge.cemiuiler.utils.devicesdk; - -import android.os.Build; - -public class SdkHelper { - - public static final boolean ATLEAST_R; - public static final boolean ATLEAST_S; - public static final boolean ATLEAST_T; - - /* public static final boolean ATLEAST_U;*/ - - public static final boolean IS_MIUI; - public static final boolean IS_MIUI_13; - public static final boolean IS_MIUI_14; - public static final int PROP_MIUI_VERSION_CODE; - - public static boolean isAndroidMoreVersion(int version) { - return (Build.VERSION.SDK_INT >= version); - } - - public static boolean isAndroidR() { - return (Build.VERSION.SDK_INT == Build.VERSION_CODES.R); - } - - public static boolean isAndroidS() { - return (Build.VERSION.SDK_INT == Build.VERSION_CODES.S); - } - - public static boolean isAndroidSv2() { - return (Build.VERSION.SDK_INT == Build.VERSION_CODES.S_V2); - } - - public static boolean isAndroidTiramisu() { - return (Build.VERSION.SDK_INT == Build.VERSION_CODES.TIRAMISU); - } - -/* public static boolean isAndroidU(){ - return (Build.VERSION.SDK_INT == Build.VERSION_CODES.UPSIDE_DOWN_CAKE); - }*/ - - static { - ATLEAST_R = isAndroidR(); - ATLEAST_S = isAndroidS(); - ATLEAST_T = isAndroidTiramisu(); - /* ATLEAST_U = isAndroidU();*/ - - IS_MIUI = moralnorm.os.Build.IS_MIUI; - PROP_MIUI_VERSION_CODE = IS_MIUI ? Integer.parseInt(moralnorm.os.Build.getMiuiVersionCode()) : 0; - - IS_MIUI_13 = PROP_MIUI_VERSION_CODE == 13; - IS_MIUI_14 = PROP_MIUI_VERSION_CODE == 14; - } -} diff --git a/app/src/main/java/com/sevtinge/cemiuiler/utils/devicesdk/SystemSDK.kt b/app/src/main/java/com/sevtinge/cemiuiler/utils/devicesdk/SystemSDK.kt new file mode 100644 index 000000000..1f5ac4688 --- /dev/null +++ b/app/src/main/java/com/sevtinge/cemiuiler/utils/devicesdk/SystemSDK.kt @@ -0,0 +1,32 @@ +package com.sevtinge.cemiuiler.utils.devicesdk + +import android.os.Build + +/** +获取设备 Android 版本 、MIUI 版本 +并判断设备指定类型 + */ +fun getAndroidVersion(): Int = Build.VERSION.SDK_INT + +fun isAndroidR(): Boolean = getAndroidVersion() == Build.VERSION_CODES.R +fun isAndroidS(): Boolean = getAndroidVersion() == Build.VERSION_CODES.S +fun isAndroidSv2(): Boolean = getAndroidVersion() == Build.VERSION_CODES.S_V2 +fun isAndroidT(): Boolean = getAndroidVersion() == Build.VERSION_CODES.TIRAMISU + +fun isMoreAndroidVersion(version: Int): Boolean { + return getAndroidVersion() >= version +} + +fun getMiuiVersion(): Float = when (getProp("ro.miui.ui.version.name")) { + "V140" -> 14f + "V130" -> 13f + "V125" -> 12.5f + "V12" -> 12f + "V11" -> 11f + "V10" -> 10f + else -> 0f +} + +fun isMoreMiuiVersion(version: Float): Boolean { + return getMiuiVersion() >= version +} From bd0ad7fcc99ae853242137b6c9782a9cf011e25d Mon Sep 17 00:00:00 2001 From: Neko Qiqi <80700814+mu7220@users.noreply.github.com> Date: Mon, 12 Jun 2023 02:27:37 +0800 Subject: [PATCH 06/24] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20PackagePermissions.j?= =?UTF-8?q?ava?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cemiuiler/module/systemframework/PackagePermissions.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/sevtinge/cemiuiler/module/systemframework/PackagePermissions.java b/app/src/main/java/com/sevtinge/cemiuiler/module/systemframework/PackagePermissions.java index aae9dcd8f..f38d5d689 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/module/systemframework/PackagePermissions.java +++ b/app/src/main/java/com/sevtinge/cemiuiler/module/systemframework/PackagePermissions.java @@ -1,6 +1,6 @@ package com.sevtinge.cemiuiler.module.systemframework; -import static com.sevtinge.cemiuiler.utils.devicesdk.SdkHelper.isAndroidMoreVersion; +import static com.sevtinge.cemiuiler.utils.devicesdk.SystemSDKKt.isAndroidMoreVersion; import android.content.pm.ApplicationInfo; import android.content.pm.ResolveInfo; From 853662dd99eb0e1a5e48d31662e3f3f72973d200 Mon Sep 17 00:00:00 2001 From: mu7220 <80700814+mu7220@users.noreply.github.com> Date: Mon, 12 Jun 2023 09:22:05 +0800 Subject: [PATCH 07/24] =?UTF-8?q?=E4=BC=98=E5=8C=96=20=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sevtinge/cemiuiler/module/base/SystemUIHook.java | 5 +++-- .../module/systemframework/PackagePermissions.java | 6 +++--- .../module/systemframework/VolumeSeparateControl.java | 8 ++++---- .../cemiuiler/module/systemui/StatusBarActions.java | 8 ++++---- .../module/systemui/controlcenter/CCGrid.java | 4 ++-- .../module/systemui/controlcenter/QSFiveGTile.java | 11 ++++++----- .../module/systemui/plugin/PluginHelper.java | 4 ++-- 7 files changed, 24 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/com/sevtinge/cemiuiler/module/base/SystemUIHook.java b/app/src/main/java/com/sevtinge/cemiuiler/module/base/SystemUIHook.java index 3a9d15989..32811c55c 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/module/base/SystemUIHook.java +++ b/app/src/main/java/com/sevtinge/cemiuiler/module/base/SystemUIHook.java @@ -1,6 +1,7 @@ package com.sevtinge.cemiuiler.module.base; -import static com.sevtinge.cemiuiler.utils.devicesdk.SdkHelper.isAndroidMoreVersion; + +import static com.sevtinge.cemiuiler.utils.devicesdk.SystemSDKKt.isMoreAndroidVersion; import android.os.Build; @@ -15,7 +16,7 @@ public abstract class SystemUIHook extends BaseHook { public void setLoadPackageParam(LoadPackageParam param) { super.setLoadPackageParam(param); - if (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"; diff --git a/app/src/main/java/com/sevtinge/cemiuiler/module/systemframework/PackagePermissions.java b/app/src/main/java/com/sevtinge/cemiuiler/module/systemframework/PackagePermissions.java index f38d5d689..69951ae29 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/module/systemframework/PackagePermissions.java +++ b/app/src/main/java/com/sevtinge/cemiuiler/module/systemframework/PackagePermissions.java @@ -1,6 +1,6 @@ package com.sevtinge.cemiuiler.module.systemframework; -import static com.sevtinge.cemiuiler.utils.devicesdk.SystemSDKKt.isAndroidMoreVersion; +import static com.sevtinge.cemiuiler.utils.devicesdk.SystemSDKKt.isMoreAndroidVersion; import android.content.pm.ApplicationInfo; import android.content.pm.ResolveInfo; @@ -24,7 +24,7 @@ public void init() { systemPackages.add(Helpers.mAppModulePkg); // Allow signature level permissions for module - String PMSCls = isAndroidMoreVersion(Build.VERSION_CODES.TIRAMISU) ? "com.android.server.pm.permission.PermissionManagerServiceImpl" : "com.android.server.pm.permission.PermissionManagerService"; + String PMSCls = isMoreAndroidVersion(Build.VERSION_CODES.TIRAMISU) ? "com.android.server.pm.permission.PermissionManagerServiceImpl" : "com.android.server.pm.permission.PermissionManagerService"; // Allow signature level permissions for module hookAllMethods(PMSCls, "shouldGrantPermissionBySignature", new MethodHook() { @@ -46,7 +46,7 @@ protected void before(MethodHookParam param) { // Make module appear as system app - String ActQueryService = isAndroidMoreVersion(Build.VERSION_CODES.TIRAMISU) ? "com.android.server.pm.ComputerEngine" : "com.android.server.pm.PackageManagerService"; + String ActQueryService = isMoreAndroidVersion(Build.VERSION_CODES.TIRAMISU) ? "com.android.server.pm.ComputerEngine" : "com.android.server.pm.PackageManagerService"; hookAllMethods(ActQueryService, "queryIntentActivitiesInternal", new MethodHook() { @Override @SuppressWarnings("unchecked") diff --git a/app/src/main/java/com/sevtinge/cemiuiler/module/systemframework/VolumeSeparateControl.java b/app/src/main/java/com/sevtinge/cemiuiler/module/systemframework/VolumeSeparateControl.java index f2a45f6f8..b10837a45 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/module/systemframework/VolumeSeparateControl.java +++ b/app/src/main/java/com/sevtinge/cemiuiler/module/systemframework/VolumeSeparateControl.java @@ -1,7 +1,7 @@ package com.sevtinge.cemiuiler.module.systemframework; -import static com.sevtinge.cemiuiler.utils.devicesdk.SdkHelper.isAndroidMoreVersion; -import static com.sevtinge.cemiuiler.utils.devicesdk.SdkHelper.isAndroidTiramisu; +import static com.sevtinge.cemiuiler.utils.devicesdk.SystemSDKKt.isAndroidT; +import static com.sevtinge.cemiuiler.utils.devicesdk.SystemSDKKt.isMoreAndroidVersion; import android.os.Build; import android.provider.Settings; @@ -26,13 +26,13 @@ public void init() { @Override protected void after(MethodHookParam param) throws Throwable { int[] mStreamVolumeAlias = - (int[]) (isAndroidMoreVersion(Build.VERSION_CODES.TIRAMISU) ? + (int[]) (isMoreAndroidVersion(Build.VERSION_CODES.TIRAMISU) ? XposedHelpers.getStaticObjectField(mAudioService, "mStreamVolumeAlias") : XposedHelpers.getObjectField(param.thisObject, "mStreamVolumeAlias")); mStreamVolumeAlias[1] = 1; mStreamVolumeAlias[5] = 5; - if (isAndroidTiramisu()) { + if (isAndroidT()) { XposedHelpers.setStaticObjectField(mAudioService, "mStreamVolumeAlias", mStreamVolumeAlias); } else { XposedHelpers.setObjectField(param.thisObject, "mStreamVolumeAlias", mStreamVolumeAlias); diff --git a/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/StatusBarActions.java b/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/StatusBarActions.java index 379397017..99f7aa3d7 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/StatusBarActions.java +++ b/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/StatusBarActions.java @@ -1,6 +1,6 @@ package com.sevtinge.cemiuiler.module.systemui; -import static com.sevtinge.cemiuiler.utils.devicesdk.SdkHelper.isAndroidMoreVersion; +import static com.sevtinge.cemiuiler.utils.devicesdk.SystemSDKKt.isMoreAndroidVersion; import android.annotation.SuppressLint; import android.content.BroadcastReceiver; @@ -28,7 +28,7 @@ public class StatusBarActions extends BaseHook { @Override public void init() { - if (isAndroidMoreVersion(Build.VERSION_CODES.TIRAMISU)) { + if (isMoreAndroidVersion(Build.VERSION_CODES.TIRAMISU)) { mStatusBarClass = findClassIfExists("com.android.systemui.statusbar.phone.CentralSurfacesImpl"); } else { mStatusBarClass = findClassIfExists("com.android.systemui.statusbar.phone.StatusBar"); @@ -43,7 +43,7 @@ public void setupStatusBarAction() { findAndHookMethod(mStatusBarClass, "start", new MethodHook() { @Override - protected void after(MethodHookParam param) throws Throwable { + protected void after(MethodHookParam param) { mStatusBar = param.thisObject; Context mStatusBarContext = (Context) XposedHelpers.getObjectField(param.thisObject, "mContext"); IntentFilter intentfilter = new IntentFilter(); @@ -170,7 +170,7 @@ public void setupRestartSystemUIAction() { if (mStatusBarClass == null) return; findAndHookMethod(mStatusBarClass, "start", new MethodHook() { @Override - protected void after(MethodHookParam param) throws Throwable { + protected void after(MethodHookParam param) { mStatusBar = param.thisObject; Context mStatusBarContext = (Context) XposedHelpers.getObjectField(param.thisObject, "mContext"); IntentFilter intentfilter = new IntentFilter(); diff --git a/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/controlcenter/CCGrid.java b/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/controlcenter/CCGrid.java index 1c8a42c0b..40b9ae128 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/controlcenter/CCGrid.java +++ b/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/controlcenter/CCGrid.java @@ -1,6 +1,6 @@ package com.sevtinge.cemiuiler.module.systemui.controlcenter; -import static com.sevtinge.cemiuiler.utils.devicesdk.SdkHelper.isAndroidMoreVersion; +import static com.sevtinge.cemiuiler.utils.devicesdk.SystemSDKKt.isMoreAndroidVersion; import android.annotation.SuppressLint; import android.content.Context; @@ -60,7 +60,7 @@ protected void after(MethodHookParam param) throws Throwable { } }); - String pluginLoaderClass = isAndroidMoreVersion(Build.VERSION_CODES.TIRAMISU) ? "com.android.systemui.shared.plugins.PluginInstance$Factory" : "com.android.systemui.shared.plugins.PluginManagerImpl"; + String pluginLoaderClass = isMoreAndroidVersion(Build.VERSION_CODES.TIRAMISU) ? "com.android.systemui.shared.plugins.PluginInstance$Factory" : "com.android.systemui.shared.plugins.PluginManagerImpl"; Helpers.hookAllMethods(pluginLoaderClass, lpparam.classLoader, "getClassLoader", new MethodHook() { private boolean isHooked = false; diff --git a/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/controlcenter/QSFiveGTile.java b/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/controlcenter/QSFiveGTile.java index f2a0f46c8..8b9ccce97 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/controlcenter/QSFiveGTile.java +++ b/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/controlcenter/QSFiveGTile.java @@ -1,7 +1,8 @@ package com.sevtinge.cemiuiler.module.systemui.controlcenter; -import static com.sevtinge.cemiuiler.utils.devicesdk.SdkHelper.isAndroidMoreVersion; +import static com.sevtinge.cemiuiler.utils.devicesdk.SystemSDKKt.isMoreAndroidVersion; +import android.annotation.SuppressLint; import android.content.ComponentName; import android.content.Context; import android.content.Intent; @@ -16,7 +17,6 @@ import com.sevtinge.cemiuiler.R; import com.sevtinge.cemiuiler.module.base.BaseHook; import com.sevtinge.cemiuiler.utils.Helpers; -import com.sevtinge.cemiuiler.utils.devicesdk.SdkHelper; import de.robv.android.xposed.XposedHelpers; import miui.telephony.TelephonyManager; @@ -32,6 +32,7 @@ public class QSFiveGTile extends BaseHook { String mNfcTileClsName; @Override + @SuppressLint("DiscouragedApi") public void init() { final boolean[] isListened = {false}; @@ -39,10 +40,10 @@ public void init() { int mFiveGIconResId = mResHook.addResource("ic_control_center_5g_toggle_on", R.drawable.ic_control_center_5g_toggle_on); int mFiveGIconOffResId = mResHook.addResource("ic_control_center_5g_toggle_off", R.drawable.ic_control_center_5g_toggle_off); - mQSFactoryClsName = isAndroidMoreVersion(Build.VERSION_CODES.TIRAMISU) ? "com.android.systemui.qs.tileimpl.MiuiQSFactory" : + mQSFactoryClsName = isMoreAndroidVersion(Build.VERSION_CODES.TIRAMISU) ? "com.android.systemui.qs.tileimpl.MiuiQSFactory" : "com.android.systemui.qs.tileimpl.QSFactoryImpl"; - mNfcTileClsName = isAndroidMoreVersion(Build.VERSION_CODES.TIRAMISU) ? "com.android.systemui.qs.tiles.MiuiNfcTile" : + mNfcTileClsName = isMoreAndroidVersion(Build.VERSION_CODES.TIRAMISU) ? "com.android.systemui.qs.tiles.MiuiNfcTile" : "com.android.systemui.qs.tiles.NfcTile"; mQSFactory = findClassIfExists(mQSFactoryClsName); @@ -69,7 +70,7 @@ protected void after(MethodHookParam param) throws Throwable { protected void before(MethodHookParam param) throws Throwable { String tileName = (String) param.args[0]; if (tileName.startsWith("custom_")) { - String nfcField = SdkHelper.ATLEAST_T ? "nfcTileProvider" : "mNfcTileProvider"; + String nfcField = isMoreAndroidVersion(Build.VERSION_CODES.TIRAMISU) ? "nfcTileProvider" : "mNfcTileProvider"; Object provider = XposedHelpers.getObjectField(param.thisObject, nfcField); Object tile = XposedHelpers.callMethod(provider, "get"); XposedHelpers.setAdditionalInstanceField(tile, "customName", tileName); diff --git a/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/plugin/PluginHelper.java b/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/plugin/PluginHelper.java index 270c871ad..95004b114 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/plugin/PluginHelper.java +++ b/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/plugin/PluginHelper.java @@ -1,6 +1,6 @@ package com.sevtinge.cemiuiler.module.systemui.plugin; -import static com.sevtinge.cemiuiler.utils.devicesdk.SdkHelper.isAndroidMoreVersion; +import static com.sevtinge.cemiuiler.utils.devicesdk.SystemSDKKt.isMoreAndroidVersion; import android.content.pm.ApplicationInfo; import android.os.Build; @@ -13,7 +13,7 @@ public class PluginHelper extends BaseHook { @Override public void init() { - String pluginLoaderClass = isAndroidMoreVersion(Build.VERSION_CODES.TIRAMISU) ? "com.android.systemui.shared.plugins.PluginInstance$Factory" : "com.android.systemui.shared.plugins.PluginManagerImpl"; + String pluginLoaderClass = isMoreAndroidVersion(Build.VERSION_CODES.TIRAMISU) ? "com.android.systemui.shared.plugins.PluginInstance$Factory" : "com.android.systemui.shared.plugins.PluginManagerImpl"; hookAllMethods(pluginLoaderClass, "getClassLoader", new MethodHook() { private boolean isHooked = false; From 403b8222476b0acb3e60b2815236aa0ccb18850e Mon Sep 17 00:00:00 2001 From: Neko Qiqi <80700814+mu7220@users.noreply.github.com> Date: Mon, 12 Jun 2023 10:14:15 +0800 Subject: [PATCH 08/24] =?UTF-8?q?=E5=B0=9D=E8=AF=95=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E4=B8=80=E4=B8=AA=E5=BC=82=E5=B8=B8=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sevtinge/cemiuiler/module/thememanager/ThemeCrackNew.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/sevtinge/cemiuiler/module/thememanager/ThemeCrackNew.kt b/app/src/main/java/com/sevtinge/cemiuiler/module/thememanager/ThemeCrackNew.kt index 3c4499f6d..f54ae7397 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/module/thememanager/ThemeCrackNew.kt +++ b/app/src/main/java/com/sevtinge/cemiuiler/module/thememanager/ThemeCrackNew.kt @@ -58,7 +58,8 @@ class ThemeCrackNew : BaseHook() { assert(drmResult.size == 1) val drmResultDescriptor = drmResult.first() val drmResultMethod: Method = drmResultDescriptor.getMethodInstance(lpparam.classLoader) - log("DrmResult method is $drmResultMethod") + if (drmResultMethod.returnType != DrmManager.DrmResult::class.java) continue +log("DrmResult method is $drmResultMethod") drmResultMethod.hookAfter { it.result = DrmManager.DrmResult.DRM_SUCCESS } From e9685427dfb9f51251463c4e8865c458c04e9cb5 Mon Sep 17 00:00:00 2001 From: Neko Qiqi <80700814+mu7220@users.noreply.github.com> Date: Mon, 12 Jun 2023 10:17:31 +0800 Subject: [PATCH 09/24] =?UTF-8?q?=E5=B0=9D=E8=AF=95=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E4=B8=80=E4=B8=AA=E5=BC=82=E5=B8=B8=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sevtinge/cemiuiler/module/thememanager/ThemeCrackNew.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/sevtinge/cemiuiler/module/thememanager/ThemeCrackNew.kt b/app/src/main/java/com/sevtinge/cemiuiler/module/thememanager/ThemeCrackNew.kt index f54ae7397..d7e58ba76 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/module/thememanager/ThemeCrackNew.kt +++ b/app/src/main/java/com/sevtinge/cemiuiler/module/thememanager/ThemeCrackNew.kt @@ -45,6 +45,7 @@ class ThemeCrackNew : BaseHook() { try { // val filterManager: Method = descriptor.getMethodInstance(lpparam.classLoader) val drmResultMethod = descriptor.getMethodInstance(lpparam.classLoader) + if (drmResultMethod.returnType != DrmManager.DrmResult::class.java) continue log("DrmResult method is $drmResultMethod") drmResultMethod.createHook { after { @@ -58,8 +59,7 @@ class ThemeCrackNew : BaseHook() { assert(drmResult.size == 1) val drmResultDescriptor = drmResult.first() val drmResultMethod: Method = drmResultDescriptor.getMethodInstance(lpparam.classLoader) - if (drmResultMethod.returnType != DrmManager.DrmResult::class.java) continue -log("DrmResult method is $drmResultMethod") + log("DrmResult method is $drmResultMethod") drmResultMethod.hookAfter { it.result = DrmManager.DrmResult.DRM_SUCCESS } From 7b8a2ae0b802f53dcceed3cdd28e5dbe79d51980 Mon Sep 17 00:00:00 2001 From: mu7220 <80700814+mu7220@users.noreply.github.com> Date: Mon, 12 Jun 2023 12:24:39 +0800 Subject: [PATCH 10/24] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20=E6=B7=B7=E6=B7=86?= =?UTF-8?q?=E8=A7=84=E5=88=99=EF=BC=8C=E5=B9=B6=E5=90=AF=E7=94=A8=E8=B5=84?= =?UTF-8?q?=E6=BA=90=E6=B7=B7=E6=B7=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 13 +++++----- app/proguard-log.pro | 54 ++++++++++++++++++++++++++++++++++++++++++ app/proguard-rules.pro | 2 ++ 3 files changed, 62 insertions(+), 7 deletions(-) create mode 100644 app/proguard-log.pro diff --git a/app/build.gradle b/app/build.gradle index 4b0ddd19b..1181ca452 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -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 { @@ -63,10 +66,6 @@ android { namespace 'com.sevtinge.cemiuiler' } -/* -repositories { - mavenCentral() -}*/ dependencies { diff --git a/app/proguard-log.pro b/app/proguard-log.pro new file mode 100644 index 000000000..151518a3d --- /dev/null +++ b/app/proguard-log.pro @@ -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(...); +} diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index a2942a698..3c6a2f38d 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -8,3 +8,5 @@ -keep class * extends com.sevtinge.cemiuiler.ui.fragment.base.* -dontwarn android.app.ActivityTaskManager$RootTaskInfo -dontwarn miui.app.MiuiFreeFormManager$MiuiFreeFormStackInfo +-allowaccessmodification +-overloadaggressively From cc5d5b9a667a2db65c35c0f781db94e45472b693 Mon Sep 17 00:00:00 2001 From: mu7220 <80700814+mu7220@users.noreply.github.com> Date: Mon, 12 Jun 2023 16:54:23 +0800 Subject: [PATCH 11/24] =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=83=A8=E5=88=86?= =?UTF-8?q?=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/personalassistant/WidgetCrack.kt | 126 ++++++++---------- .../module/systemframework/ThemeProvider.kt | 18 +-- 2 files changed, 63 insertions(+), 81 deletions(-) diff --git a/app/src/main/java/com/sevtinge/cemiuiler/module/personalassistant/WidgetCrack.kt b/app/src/main/java/com/sevtinge/cemiuiler/module/personalassistant/WidgetCrack.kt index 590b74cb7..7f47c11b3 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/module/personalassistant/WidgetCrack.kt +++ b/app/src/main/java/com/sevtinge/cemiuiler/module/personalassistant/WidgetCrack.kt @@ -2,100 +2,90 @@ package com.sevtinge.cemiuiler.module.personalassistant import com.github.kyuubiran.ezxhelper.ClassUtils.loadClass import com.github.kyuubiran.ezxhelper.HookFactory.`-Static`.createHook +import com.github.kyuubiran.ezxhelper.Log import com.github.kyuubiran.ezxhelper.finders.MethodFinder.`-Static`.methodFinder import com.sevtinge.cemiuiler.module.base.BaseHook class WidgetCrack : BaseHook() { override fun init() { - loadClass("com.miui.maml.widget.edit.MamlutilKt").methodFinder().first { - name == "themeManagerSupportPaidWidget" - }.createHook { - after { - it.result = false + try { + loadClass("com.miui.maml.widget.edit.MamlutilKt").methodFinder().first { + name == "themeManagerSupportPaidWidget" + }.createHook { + returnConstant(false) } - } - loadClass("com.miui.personalassistant.picker.business.detail.PickerDetailViewModel").methodFinder().first { - name == "isCanDirectAddMaMl" - }.createHook { - after { - it.result = true + loadClass("com.miui.personalassistant.picker.business.detail.PickerDetailViewModel").methodFinder() + .first { + name == "isCanDirectAddMaMl" + }.createHook { + returnConstant(true) } - } - loadClass("com.miui.personalassistant.picker.business.detail.utils.PickerDetailDownloadManager\$Companion").methodFinder() - .first { - name == "isCanDownload" - }.createHook { - before { - it.result = true + loadClass("com.miui.personalassistant.picker.business.detail.utils.PickerDetailDownloadManager\$Companion").methodFinder() + .first { + name == "isCanDownload" + }.createHook { + returnConstant(true) } - } - loadClass("com.miui.personalassistant.picker.business.detail.utils.PickerDetailUtil").methodFinder().first { - name == "isCanAutoDownloadMaMl" - }.createHook { - before { - it.result = true + loadClass("com.miui.personalassistant.picker.business.detail.utils.PickerDetailUtil").methodFinder() + .first { + name == "isCanAutoDownloadMaMl" + }.createHook { + returnConstant(true) } - } - loadClass("com.miui.personalassistant.picker.business.detail.bean.PickerDetailResponse").methodFinder().first { - name == "isPay" - }.createHook { - before { - it.result = false + loadClass("com.miui.personalassistant.picker.business.detail.bean.PickerDetailResponse").methodFinder() + .first { + name == "isPay" + }.createHook { + returnConstant(false) } - } - loadClass("com.miui.personalassistant.picker.business.detail.bean.PickerDetailResponse").methodFinder().first { - name == "isBought" - }.createHook { - before { - it.result = true + loadClass("com.miui.personalassistant.picker.business.detail.bean.PickerDetailResponse").methodFinder() + .first { + name == "isBought" + }.createHook { + returnConstant(true) } - } - loadClass("com.miui.personalassistant.picker.business.detail.bean.PickerDetailResponseWrapper").methodFinder() - .first { - name == "isPay" - }.createHook { - before { - it.result = false + loadClass("com.miui.personalassistant.picker.business.detail.bean.PickerDetailResponseWrapper").methodFinder() + .first { + name == "isPay" + }.createHook { + returnConstant(false) } - } - loadClass("com.miui.personalassistant.picker.business.detail.bean.PickerDetailResponseWrapper").methodFinder() - .first { - name == "isBought" - }.createHook { - before { - it.result = true + loadClass("com.miui.personalassistant.picker.business.detail.bean.PickerDetailResponseWrapper").methodFinder() + .first { + name == "isBought" + }.createHook { + returnConstant(true) } - } - loadClass("com.miui.personalassistant.picker.business.detail.PickerDetailViewModel").methodFinder().first { - name == "shouldCheckMamlBoughtState" - }.createHook { - after { - it.result = false + loadClass("com.miui.personalassistant.picker.business.detail.PickerDetailViewModel").methodFinder() + .first { + name == "shouldCheckMamlBoughtState" + }.createHook { + returnConstant(false) } - } - loadClass("com.miui.personalassistant.picker.business.detail.PickerDetailViewModel").methodFinder().first { - name == "isTargetPositionMamlPayAndDownloading" - }.createHook { - after { - it.result = false + loadClass("com.miui.personalassistant.picker.business.detail.PickerDetailViewModel").methodFinder() + .first { + name == "isTargetPositionMamlPayAndDownloading" + }.createHook { + returnConstant(false) } - } - loadClass("com.miui.personalassistant.picker.business.detail.PickerDetailViewModel").methodFinder().first { - name == "checkIsIndependentProcessWidgetForPosition" - }.createHook { - after { - it.result = true + loadClass("com.miui.personalassistant.picker.business.detail.PickerDetailViewModel").methodFinder() + .first { + name == "checkIsIndependentProcessWidgetForPosition" + }.createHook { + returnConstant(true) } + } catch (t: Throwable) { + Log.ex(t) } } } diff --git a/app/src/main/java/com/sevtinge/cemiuiler/module/systemframework/ThemeProvider.kt b/app/src/main/java/com/sevtinge/cemiuiler/module/systemframework/ThemeProvider.kt index 8e8773c40..ef073647c 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/module/systemframework/ThemeProvider.kt +++ b/app/src/main/java/com/sevtinge/cemiuiler/module/systemframework/ThemeProvider.kt @@ -13,26 +13,18 @@ class ThemeProvider : BaseHook() { override fun init() { var hook: List? = null try { - (ThemeReceiver::class.java).methodFinder().first { - name == "validateTheme" - }.createHook { + ThemeReceiver::class.java.methodFinder().filterByName("validateTheme").first().createHook { before { - hook = (DrmManager::class.java).methodFinder().filter { - name == "isLegal" - }.toList().createHooks { - before { - it.result = DrmManager.DrmResult.DRM_SUCCESS - } + hook = DrmManager::class.java.methodFinder().filterByName("isLegal").toList().createHooks { + returnConstant(DrmManager.DrmResult.DRM_SUCCESS) } } after { - hook?.forEach { - it.unhook() - } + hook?.forEach { it.unhook() } } } } catch (t: Throwable) { Log.ex(t) } } -} \ No newline at end of file +} From cb05aed1bd15df8063abac30995a68a803e80421 Mon Sep 17 00:00:00 2001 From: mu7220 <80700814+mu7220@users.noreply.github.com> Date: Mon, 12 Jun 2023 17:27:11 +0800 Subject: [PATCH 12/24] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=20=E9=87=8D=E5=90=AF?= =?UTF-8?q?=E5=BC=B9=E7=AA=97=E6=96=87=E5=AD=97=E5=A4=9A=E8=AF=AD=E8=A8=80?= =?UTF-8?q?=E4=B8=8B=E6=8E=92=E7=89=88=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/sevtinge/cemiuiler/ui/base/BaseSettingsActivity.java | 2 +- app/src/main/res/values-en-rUS/strings.xml | 4 ++-- app/src/main/res/values-pt-rBR/strings.xml | 2 +- app/src/main/res/values-tr/strings.xml | 2 +- app/src/main/res/values-vi/strings.xml | 2 +- app/src/main/res/values/strings.xml | 4 ++-- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/sevtinge/cemiuiler/ui/base/BaseSettingsActivity.java b/app/src/main/java/com/sevtinge/cemiuiler/ui/base/BaseSettingsActivity.java index fd8a31af0..2a4bb32d3 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/ui/base/BaseSettingsActivity.java +++ b/app/src/main/java/com/sevtinge/cemiuiler/ui/base/BaseSettingsActivity.java @@ -95,7 +95,7 @@ public void showRestartDialog(String appLabel, String packagename) { public void showRestartDialog(boolean isRestartSystem, String appLabel, String packagename) { new AlertDialog.Builder(this) .setCancelable(false) - .setTitle(getResources().getString(R.string.soft_reboot) + appLabel) + .setTitle(getResources().getString(R.string.soft_reboot) + " " + appLabel) .setMessage(getResources().getString(R.string.restart_app_desc1) + appLabel + getResources().getString(R.string.restart_app_desc2)) .setHapticFeedbackEnabled(true) .setPositiveButton(android.R.string.ok, (dialog, which) -> doRestart(packagename, isRestartSystem)) diff --git a/app/src/main/res/values-en-rUS/strings.xml b/app/src/main/res/values-en-rUS/strings.xml index ab4b9bad8..3fcc6cfcd 100644 --- a/app/src/main/res/values-en-rUS/strings.xml +++ b/app/src/main/res/values-en-rUS/strings.xml @@ -521,7 +521,7 @@ Add hook Select mode Pull down the status bar to display shortcut switches and system notifications - Quickly restart the target app + Quickly restart apps Add Delete Are you sure you want to reset? @@ -547,7 +547,7 @@ Manage NFC automatically NFC is automatically turned on when entering the card swiping page, and it is automatically turned off when exiting "Are you sure you want to restart now " - " ?" + "?" Tip Module not activated Set the location of the module entry in the system settings diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 102c87b74..60b94341a 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -505,7 +505,7 @@ Recuperação bem sucedida Recuperar Tem certeza de que deseja reiniciar agora - \? + ? Scanner Desbloquear cartão de identificação de digitalização Desbloquear ficheiros de verificação diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 6ed36a102..7c9a5a5f5 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -537,7 +537,7 @@ Nfc\'yi otomatik olarak yönet Kart kaydırma sayfasına girerken NFC otomatik olarak açılır ve çıkarken otomatik olarak kapanır "Şimdi yeniden başlatmak istediğinizden emin misiniz" - " ?" + "?" Tip Modül aktif değil Sistem ayarlarında modül girişinin konumunu ayarlayın diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml index b6d1ebd4d..db74f84c0 100644 --- a/app/src/main/res/values-vi/strings.xml +++ b/app/src/main/res/values-vi/strings.xml @@ -529,7 +529,7 @@ Khôi phục đã thành công Khôi phục "Bạn có muốn khởi động lại máy bây giờ " - " ?" + "?" Lưu thông tin vị trí Máy quét Mở khóa quét thẻ ID diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d447344bc..0e29c7e10 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -508,7 +508,7 @@ Add hook Select mode Pull down the status bar to display shortcut switches and system notifications - Quickly restart the target app + Quickly restart apps Add Delete Are you sure you want to reset? @@ -534,7 +534,7 @@ Manage NFC automatically NFC is automatically turned on when entering the card swiping page, and it is automatically turned off when exiting "Are you sure you want to restart now " - " ?" + "?" Tip Module not activated Set the location of the module entry in the system settings From 7dc3223df3adf6e4cf30fbed7366f4630b5ec87f Mon Sep 17 00:00:00 2001 From: mu7220 <80700814+mu7220@users.noreply.github.com> Date: Mon, 12 Jun 2023 20:26:39 +0800 Subject: [PATCH 13/24] =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=A1=B9=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/securitycenter/BlurSecurity.kt | 45 ++++--------------- .../cemiuiler/ui/fragment/MainFragment.java | 8 ++++ .../cemiuiler/utils/devicesdk/SystemSDK.kt | 1 + app/src/main/res/values-en-rUS/strings.xml | 1 + app/src/main/res/values-zh-rCN/strings.xml | 1 + app/src/main/res/values-zh-rHK/strings.xml | 3 ++ app/src/main/res/values-zh-rTW/strings.xml | 3 ++ app/src/main/res/values/strings.xml | 1 + app/src/main/res/xml/prefs_main.xml | 7 +++ 9 files changed, 34 insertions(+), 36 deletions(-) diff --git a/app/src/main/java/com/sevtinge/cemiuiler/module/securitycenter/BlurSecurity.kt b/app/src/main/java/com/sevtinge/cemiuiler/module/securitycenter/BlurSecurity.kt index fbdc7e97e..0876d282d 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/module/securitycenter/BlurSecurity.kt +++ b/app/src/main/java/com/sevtinge/cemiuiler/module/securitycenter/BlurSecurity.kt @@ -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( @@ -67,9 +60,9 @@ 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" @@ -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) { @@ -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) @@ -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) @@ -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) diff --git a/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/MainFragment.java b/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/MainFragment.java index c64a2ebd7..770c800df 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/MainFragment.java +++ b/app/src/main/java/com/sevtinge/cemiuiler/ui/fragment/MainFragment.java @@ -1,5 +1,6 @@ package com.sevtinge.cemiuiler.ui.fragment; +import static com.sevtinge.cemiuiler.utils.api.VoyagerApisKt.isPad; import static com.sevtinge.cemiuiler.utils.devicesdk.SystemSDKKt.isAndroidR; import com.sevtinge.cemiuiler.R; @@ -11,6 +12,8 @@ public class MainFragment extends SettingsPreferenceFragment { Preference mPowerSetting; Preference mMTB; + Preference mSecurityCenter; + Preference mSecurityCenterPad; @Override public int getContentResId() { @@ -21,8 +24,13 @@ public int getContentResId() { public void initPrefs() { mPowerSetting = findPreference("prefs_key_powerkeeper"); mMTB = findPreference("prefs_key_mtb"); + mSecurityCenter = findPreference("prefs_key_security_center"); + mSecurityCenterPad = findPreference("prefs_key_security_center_pad"); mPowerSetting.setVisible(!isAndroidR()); mMTB.setVisible(!isAndroidR()); + + mSecurityCenter.setVisible(!isPad()); + mSecurityCenterPad.setVisible(isPad()); } } diff --git a/app/src/main/java/com/sevtinge/cemiuiler/utils/devicesdk/SystemSDK.kt b/app/src/main/java/com/sevtinge/cemiuiler/utils/devicesdk/SystemSDK.kt index 1f5ac4688..88e4c5b6d 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/utils/devicesdk/SystemSDK.kt +++ b/app/src/main/java/com/sevtinge/cemiuiler/utils/devicesdk/SystemSDK.kt @@ -12,6 +12,7 @@ fun isAndroidR(): Boolean = getAndroidVersion() == Build.VERSION_CODES.R fun isAndroidS(): Boolean = getAndroidVersion() == Build.VERSION_CODES.S fun isAndroidSv2(): Boolean = getAndroidVersion() == Build.VERSION_CODES.S_V2 fun isAndroidT(): Boolean = getAndroidVersion() == Build.VERSION_CODES.TIRAMISU +fun isAndroidU(): Boolean = getAndroidVersion() == Build.VERSION_CODES.UPSIDE_DOWN_CAKE fun isMoreAndroidVersion(version: Int): Boolean { return getAndroidVersion() >= version diff --git a/app/src/main/res/values-en-rUS/strings.xml b/app/src/main/res/values-en-rUS/strings.xml index 3fcc6cfcd..ccf2852c4 100644 --- a/app/src/main/res/values-en-rUS/strings.xml +++ b/app/src/main/res/values-en-rUS/strings.xml @@ -1050,4 +1050,5 @@ More More Clear up + Tablet security center \ No newline at end of file diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 2f7e94044..bef178f03 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -97,6 +97,7 @@ 文件管理 截屏 手机管家 + 平板管家 系统框架 设置 系统界面 diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml index d6a01ca02..739dbf685 100644 --- a/app/src/main/res/values-zh-rHK/strings.xml +++ b/app/src/main/res/values-zh-rHK/strings.xml @@ -1034,4 +1034,7 @@ 未設定 進階 複製 + 更多 + 更多 + 平板管家 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 897ea5890..c1d73085a 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -1034,4 +1034,7 @@ 未設定 進階 複製 + 更多 + 更多 + 平板管家 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 0e29c7e10..6a1baa3a4 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1068,4 +1068,5 @@ More More Clear up + Tablet security center \ No newline at end of file diff --git a/app/src/main/res/xml/prefs_main.xml b/app/src/main/res/xml/prefs_main.xml index 9b234f7f8..aeca79488 100644 --- a/app/src/main/res/xml/prefs_main.xml +++ b/app/src/main/res/xml/prefs_main.xml @@ -215,6 +215,13 @@ android:summary="com.miui.securitycenter" android:title="@string/security_center" /> + + Date: Mon, 12 Jun 2023 23:39:07 +0800 Subject: [PATCH 14/24] =?UTF-8?q?=E8=A1=A5=E5=85=A8=E7=B9=81=E4=BD=93?= =?UTF-8?q?=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/res/values-zh-rHK/strings.xml | 12 ++++++++++++ app/src/main/res/values-zh-rTW/strings.xml | 12 ++++++++++++ 2 files changed, 24 insertions(+) diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml index 739dbf685..2aa58c21c 100644 --- a/app/src/main/res/values-zh-rHK/strings.xml +++ b/app/src/main/res/values-zh-rHK/strings.xml @@ -1034,7 +1034,19 @@ 未設定 進階 複製 + 轉到首頁 + 轉到上一層級 + 返回 + 全選 + 取消 + 確認 + 全選 + 全不選 + 刪除 + 取消 + 搜索 更多 更多 + 清空 平板管家 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index c1d73085a..f9dd0efd9 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -1034,7 +1034,19 @@ 未設定 進階 複製 + 轉到首頁 + 轉到上一層級 + 返回 + 全選 + 取消 + 確認 + 全選 + 全不選 + 刪除 + 取消 + 搜索 更多 更多 + 清空 平板管家 From 3336681e23838ecdf2acd38bd7b13e1b8ceec9c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BF=AB=E4=B9=90=E5=B0=8F=E7=89=9B?= <48382562+klxiaoniu@users.noreply.github.com> Date: Tue, 13 Jun 2023 13:08:48 +0800 Subject: [PATCH 15/24] =?UTF-8?q?=E4=BC=98=E5=8C=96=20=E6=B7=B7=E6=B7=86?= =?UTF-8?q?=E8=A7=84=E5=88=99=20(#178)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/proguard-rules.pro | 1 + .../com/sevtinge/cemiuiler/module/thememanager/ThemeCrackNew.kt | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index 3c6a2f38d..16da1b1cb 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -6,6 +6,7 @@ -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 diff --git a/app/src/main/java/com/sevtinge/cemiuiler/module/thememanager/ThemeCrackNew.kt b/app/src/main/java/com/sevtinge/cemiuiler/module/thememanager/ThemeCrackNew.kt index d7e58ba76..3c4499f6d 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/module/thememanager/ThemeCrackNew.kt +++ b/app/src/main/java/com/sevtinge/cemiuiler/module/thememanager/ThemeCrackNew.kt @@ -45,7 +45,6 @@ class ThemeCrackNew : BaseHook() { try { // val filterManager: Method = descriptor.getMethodInstance(lpparam.classLoader) val drmResultMethod = descriptor.getMethodInstance(lpparam.classLoader) - if (drmResultMethod.returnType != DrmManager.DrmResult::class.java) continue log("DrmResult method is $drmResultMethod") drmResultMethod.createHook { after { From b925a5816e7d75e75b0d727358d48f16364ba412 Mon Sep 17 00:00:00 2001 From: mu7220 <80700814+mu7220@users.noreply.github.com> Date: Tue, 13 Jun 2023 15:39:51 +0800 Subject: [PATCH 16/24] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20=E6=89=8B=E6=9C=BA?= =?UTF-8?q?=E7=AE=A1=E5=AE=B6-=E7=89=B9=E8=89=B2=E5=8A=9F=E8=83=BD-?= =?UTF-8?q?=E5=89=8D=E7=BD=AE=E6=91=84=E5=83=8F=E5=8A=A9=E6=89=8B=20?= =?UTF-8?q?=E9=83=A8=E5=88=86=E5=8A=9F=E8=83=BD=20=E7=89=B9=E5=AE=9A?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E4=B8=8B=20hook=20=E5=A4=B1=E8=B4=A5?= =?UTF-8?q?=E9=97=AE=E9=A2=98=EF=BC=8C=E5=B9=B6=E5=85=BC=E5=AE=B9=20Pad=20?= =?UTF-8?q?=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cemiuiler/module/SecurityCenter.java | 4 +- .../securitycenter/SecurityCenterDexKit.java | 1 + .../securitycenter/beauty/BeautyLight.java | 57 ------------------ .../securitycenter/beauty/BeautyLight.kt | 47 +++++++++++++++ .../securitycenter/beauty/BeautyPrivacy.java | 58 ------------------- .../securitycenter/beauty/BeautyPrivacy.kt | 45 ++++++++++++++ 6 files changed, 95 insertions(+), 117 deletions(-) delete mode 100644 app/src/main/java/com/sevtinge/cemiuiler/module/securitycenter/beauty/BeautyLight.java create mode 100644 app/src/main/java/com/sevtinge/cemiuiler/module/securitycenter/beauty/BeautyLight.kt delete mode 100644 app/src/main/java/com/sevtinge/cemiuiler/module/securitycenter/beauty/BeautyPrivacy.java create mode 100644 app/src/main/java/com/sevtinge/cemiuiler/module/securitycenter/beauty/BeautyPrivacy.kt diff --git a/app/src/main/java/com/sevtinge/cemiuiler/module/SecurityCenter.java b/app/src/main/java/com/sevtinge/cemiuiler/module/SecurityCenter.java index 848bdaba1..50bf662f2 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/module/SecurityCenter.java +++ b/app/src/main/java/com/sevtinge/cemiuiler/module/SecurityCenter.java @@ -59,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")); // 其他 diff --git a/app/src/main/java/com/sevtinge/cemiuiler/module/securitycenter/SecurityCenterDexKit.java b/app/src/main/java/com/sevtinge/cemiuiler/module/securitycenter/SecurityCenterDexKit.java index 8e6fc67d3..bb2877d50 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/module/securitycenter/SecurityCenterDexKit.java +++ b/app/src/main/java/com/sevtinge/cemiuiler/module/securitycenter/SecurityCenterDexKit.java @@ -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() ); diff --git a/app/src/main/java/com/sevtinge/cemiuiler/module/securitycenter/beauty/BeautyLight.java b/app/src/main/java/com/sevtinge/cemiuiler/module/securitycenter/beauty/BeautyLight.java deleted file mode 100644 index ae12daee7..000000000 --- a/app/src/main/java/com/sevtinge/cemiuiler/module/securitycenter/beauty/BeautyLight.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.sevtinge.cemiuiler.module.securitycenter.beauty; - -import static com.sevtinge.cemiuiler.utils.Helpers.getPackageVersionCode; - -import com.sevtinge.cemiuiler.module.base.BaseHook; - -import de.robv.android.xposed.XC_MethodHook; -import de.robv.android.xposed.XC_MethodReplacement; - -public class BeautyLight extends BaseHook { - @Override - public void init() { - int appVersionCode = getPackageVersionCode(lpparam); - if (appVersionCode == 40000749 || appVersionCode == 40000750) { - // hookAllMethods("p5.f", "m", XC_MethodReplacement.returnConstant(true)); - hookAllMethods("p5.f", "G", XC_MethodReplacement.returnConstant(true)); - } else if (appVersionCode == 40000754 || (appVersionCode >= 40000771 && appVersionCode <= 40000779 && appVersionCode != 40000772 && appVersionCode != 40000774 && appVersionCode != 40000777)) { - findAndHookMethod("com.miui.gamebooster.beauty.l", "j", new BaseHook.MethodHook() { - @Override - protected void before(XC_MethodHook.MethodHookParam param) throws Throwable { - param.setResult(true); - } - }); - } else if (appVersionCode == 40000772) { - findAndHookMethod("n5.f", "G", new BaseHook.MethodHook() { - @Override - protected void before(XC_MethodHook.MethodHookParam param) throws Throwable { - param.setResult(true); - } - }); - } else if (appVersionCode == 40000774) { - findAndHookMethod("n5.f", "H", new BaseHook.MethodHook() { - @Override - protected void before(XC_MethodHook.MethodHookParam param) throws Throwable { - param.setResult(true); - } - }); - } else if (appVersionCode == 40000777 || appVersionCode == 40000780) { - findAndHookMethod("p5.f", "H", new BaseHook.MethodHook() { - @Override - protected void before(XC_MethodHook.MethodHookParam param) throws Throwable { - param.setResult(true); - } - }); - } else { - findAndHookMethod("com.miui.gamebooster.utils.o", "c", XC_MethodReplacement.returnConstant(true)); - } - /*findAndHookMethod("com.miui.gamebooster.utils.o", "c", new BaseHook.MethodHook() { - @Override - protected void before(XC_MethodHook.MethodHookParam param) throws Throwable { - param.setResult(true); - } - });*/ - } - -} - diff --git a/app/src/main/java/com/sevtinge/cemiuiler/module/securitycenter/beauty/BeautyLight.kt b/app/src/main/java/com/sevtinge/cemiuiler/module/securitycenter/beauty/BeautyLight.kt new file mode 100644 index 000000000..cd198c4ef --- /dev/null +++ b/app/src/main/java/com/sevtinge/cemiuiler/module/securitycenter/beauty/BeautyLight.kt @@ -0,0 +1,47 @@ +package com.sevtinge.cemiuiler.module.securitycenter.beauty + +import com.github.kyuubiran.ezxhelper.HookFactory.`-Static`.createHook +import com.github.kyuubiran.ezxhelper.finders.MethodFinder.`-Static`.methodFinder +import com.sevtinge.cemiuiler.module.base.BaseHook +import com.sevtinge.cemiuiler.module.securitycenter.SecurityCenterDexKit +import com.sevtinge.cemiuiler.utils.Helpers +import com.sevtinge.cemiuiler.utils.api.isPad +import java.util.Objects + + +object BeautyLight : BaseHook() { + override fun init() { + try { + val appVersionCode = Helpers.getPackageVersionCode(lpparam) + val result = + Objects.requireNonNull(SecurityCenterDexKit.mSecurityCenterResultClassMap["BeautyLight"]) + for (descriptor in result) { + val beautyUtils = descriptor.getClassInstance(lpparam.classLoader) + beautyUtils.methodFinder().first { + if (!isPad()) { + when { + appVersionCode in 40000749..40000750 -> name == "G" + appVersionCode in 40000754..40000756 -> name == "j" + appVersionCode in 40000761..40000762 -> name == "k" + appVersionCode in 40000771..40000772 -> name == "G" + appVersionCode >= 40000774 -> name == "H"// 手机端截止到 7.8.5-20230515 版本 + else -> name == "c" // 未混淆分类 + } + } else { + when { + appVersionCode == 40010749 -> name == "G" + appVersionCode == 40010750 -> name == "j" + appVersionCode in 40010771..40010772 -> name == "G" + appVersionCode >= 40010774 -> name == "H"// 平板端截止到 7.8.5-20230511 版本 + else -> name == "j" // 未混淆分类 + } + } + }.createHook { + returnConstant(true) + } + } + } catch (e: Throwable) { + e.printStackTrace() + } + } +} diff --git a/app/src/main/java/com/sevtinge/cemiuiler/module/securitycenter/beauty/BeautyPrivacy.java b/app/src/main/java/com/sevtinge/cemiuiler/module/securitycenter/beauty/BeautyPrivacy.java deleted file mode 100644 index 62ce870e2..000000000 --- a/app/src/main/java/com/sevtinge/cemiuiler/module/securitycenter/beauty/BeautyPrivacy.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.sevtinge.cemiuiler.module.securitycenter.beauty; - -import static com.sevtinge.cemiuiler.utils.Helpers.getPackageVersionCode; - -import com.sevtinge.cemiuiler.module.base.BaseHook; - -import de.robv.android.xposed.XC_MethodHook; - -public class BeautyPrivacy extends BaseHook { - @Override - public void init() { - int appVersionCode = getPackageVersionCode(lpparam); - if (appVersionCode == 40000749 || appVersionCode == 40000750) { - findAndHookMethod("p5.f", "X", new BaseHook.MethodHook() { - @Override - protected void before(XC_MethodHook.MethodHookParam param) throws Throwable { - param.setResult(true); - } - }); - } else if (appVersionCode == 40000754 || (appVersionCode >= 40000771 && appVersionCode <= 40000779 && appVersionCode != 40000772 && appVersionCode != 40000774 && appVersionCode != 40000777)) { - findAndHookMethod("com.miui.gamebooster.beauty.l", "Q", new BaseHook.MethodHook() { - @Override - protected void before(XC_MethodHook.MethodHookParam param) throws Throwable { - param.setResult(true); - } - }); - } else if (appVersionCode == 40000772) { - findAndHookMethod("n5.f", "G", new BaseHook.MethodHook() { - @Override - protected void before(XC_MethodHook.MethodHookParam param) throws Throwable { - param.setResult(true); - } - }); - } else if (appVersionCode == 40000774) { - findAndHookMethod("n5.f", "Y", new BaseHook.MethodHook() { - @Override - protected void before(XC_MethodHook.MethodHookParam param) throws Throwable { - param.setResult(true); - } - }); - } else if (appVersionCode == 40000777 || appVersionCode == 40000780) { - findAndHookMethod("p5.f", "Y", new BaseHook.MethodHook() { - @Override - protected void before(XC_MethodHook.MethodHookParam param) throws Throwable { - param.setResult(true); - } - }); - } else { - findAndHookMethod("com.miui.gamebooster.beauty.i", "M", new BaseHook.MethodHook() { - @Override - protected void before(XC_MethodHook.MethodHookParam param) throws Throwable { - param.setResult(true); - } - }); - } - } -} - diff --git a/app/src/main/java/com/sevtinge/cemiuiler/module/securitycenter/beauty/BeautyPrivacy.kt b/app/src/main/java/com/sevtinge/cemiuiler/module/securitycenter/beauty/BeautyPrivacy.kt new file mode 100644 index 000000000..adebaa025 --- /dev/null +++ b/app/src/main/java/com/sevtinge/cemiuiler/module/securitycenter/beauty/BeautyPrivacy.kt @@ -0,0 +1,45 @@ +package com.sevtinge.cemiuiler.module.securitycenter.beauty + +import com.github.kyuubiran.ezxhelper.HookFactory.`-Static`.createHook +import com.github.kyuubiran.ezxhelper.finders.MethodFinder.`-Static`.methodFinder +import com.sevtinge.cemiuiler.module.base.BaseHook +import com.sevtinge.cemiuiler.module.securitycenter.SecurityCenterDexKit +import com.sevtinge.cemiuiler.utils.Helpers +import com.sevtinge.cemiuiler.utils.api.isPad +import java.util.Objects + +object BeautyPrivacy : BaseHook() { + override fun init() { + try { + val appVersionCode = Helpers.getPackageVersionCode(lpparam) + val result = + Objects.requireNonNull(SecurityCenterDexKit.mSecurityCenterResultClassMap["BeautyLight"]) + for (descriptor in result) { + val beautyPrivacyUtils = descriptor.getClassInstance(lpparam.classLoader) + beautyPrivacyUtils.methodFinder().first { + if (!isPad()) { + when { + appVersionCode in 40000749..40000750 -> name == "X" + appVersionCode in 40000754..40000756 -> name == "Q" + appVersionCode in 40000761..40000762 -> name == "R" + appVersionCode in 40000771..40000772 -> name == "X" + appVersionCode >= 40000774 -> name == "Y"// 手机端截止到 7.8.5-20230515 版本 + else -> name == "M" // 未混淆分类 + } + } else { + when { + appVersionCode == 40010749 -> name == "f" + appVersionCode == 40010750 -> name == "l" + appVersionCode >= 40010771 -> name == "f"// 平板端截止到 7.8.5-20230511 版本 + else -> name == "l" // 未混淆分类 + } + } + }.createHook { + returnConstant(true) + } + } + } catch (e: Throwable) { + e.printStackTrace() + } + } +} From 3a6d076f1cd14cc157c828400e6af2074b1c16d8 Mon Sep 17 00:00:00 2001 From: mu7220 <80700814+mu7220@users.noreply.github.com> Date: Tue, 13 Jun 2023 16:01:52 +0800 Subject: [PATCH 17/24] =?UTF-8?q?Revert=20"=E4=BC=98=E5=8C=96=E9=83=A8?= =?UTF-8?q?=E5=88=86=E5=86=85=E5=AE=B9"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit cc5d5b9a667a2db65c35c0f781db94e45472b693. --- .../module/personalassistant/WidgetCrack.kt | 126 ++++++++++-------- .../module/systemframework/ThemeProvider.kt | 18 ++- 2 files changed, 81 insertions(+), 63 deletions(-) diff --git a/app/src/main/java/com/sevtinge/cemiuiler/module/personalassistant/WidgetCrack.kt b/app/src/main/java/com/sevtinge/cemiuiler/module/personalassistant/WidgetCrack.kt index 7f47c11b3..590b74cb7 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/module/personalassistant/WidgetCrack.kt +++ b/app/src/main/java/com/sevtinge/cemiuiler/module/personalassistant/WidgetCrack.kt @@ -2,90 +2,100 @@ package com.sevtinge.cemiuiler.module.personalassistant import com.github.kyuubiran.ezxhelper.ClassUtils.loadClass import com.github.kyuubiran.ezxhelper.HookFactory.`-Static`.createHook -import com.github.kyuubiran.ezxhelper.Log import com.github.kyuubiran.ezxhelper.finders.MethodFinder.`-Static`.methodFinder import com.sevtinge.cemiuiler.module.base.BaseHook class WidgetCrack : BaseHook() { override fun init() { - try { - loadClass("com.miui.maml.widget.edit.MamlutilKt").methodFinder().first { - name == "themeManagerSupportPaidWidget" - }.createHook { - returnConstant(false) + loadClass("com.miui.maml.widget.edit.MamlutilKt").methodFinder().first { + name == "themeManagerSupportPaidWidget" + }.createHook { + after { + it.result = false } + } - loadClass("com.miui.personalassistant.picker.business.detail.PickerDetailViewModel").methodFinder() - .first { - name == "isCanDirectAddMaMl" - }.createHook { - returnConstant(true) + loadClass("com.miui.personalassistant.picker.business.detail.PickerDetailViewModel").methodFinder().first { + name == "isCanDirectAddMaMl" + }.createHook { + after { + it.result = true } + } - loadClass("com.miui.personalassistant.picker.business.detail.utils.PickerDetailDownloadManager\$Companion").methodFinder() - .first { - name == "isCanDownload" - }.createHook { - returnConstant(true) + loadClass("com.miui.personalassistant.picker.business.detail.utils.PickerDetailDownloadManager\$Companion").methodFinder() + .first { + name == "isCanDownload" + }.createHook { + before { + it.result = true } + } - loadClass("com.miui.personalassistant.picker.business.detail.utils.PickerDetailUtil").methodFinder() - .first { - name == "isCanAutoDownloadMaMl" - }.createHook { - returnConstant(true) + loadClass("com.miui.personalassistant.picker.business.detail.utils.PickerDetailUtil").methodFinder().first { + name == "isCanAutoDownloadMaMl" + }.createHook { + before { + it.result = true } + } - loadClass("com.miui.personalassistant.picker.business.detail.bean.PickerDetailResponse").methodFinder() - .first { - name == "isPay" - }.createHook { - returnConstant(false) + loadClass("com.miui.personalassistant.picker.business.detail.bean.PickerDetailResponse").methodFinder().first { + name == "isPay" + }.createHook { + before { + it.result = false } + } - loadClass("com.miui.personalassistant.picker.business.detail.bean.PickerDetailResponse").methodFinder() - .first { - name == "isBought" - }.createHook { - returnConstant(true) + loadClass("com.miui.personalassistant.picker.business.detail.bean.PickerDetailResponse").methodFinder().first { + name == "isBought" + }.createHook { + before { + it.result = true } + } - loadClass("com.miui.personalassistant.picker.business.detail.bean.PickerDetailResponseWrapper").methodFinder() - .first { - name == "isPay" - }.createHook { - returnConstant(false) + loadClass("com.miui.personalassistant.picker.business.detail.bean.PickerDetailResponseWrapper").methodFinder() + .first { + name == "isPay" + }.createHook { + before { + it.result = false } + } - loadClass("com.miui.personalassistant.picker.business.detail.bean.PickerDetailResponseWrapper").methodFinder() - .first { - name == "isBought" - }.createHook { - returnConstant(true) + loadClass("com.miui.personalassistant.picker.business.detail.bean.PickerDetailResponseWrapper").methodFinder() + .first { + name == "isBought" + }.createHook { + before { + it.result = true } + } - loadClass("com.miui.personalassistant.picker.business.detail.PickerDetailViewModel").methodFinder() - .first { - name == "shouldCheckMamlBoughtState" - }.createHook { - returnConstant(false) + loadClass("com.miui.personalassistant.picker.business.detail.PickerDetailViewModel").methodFinder().first { + name == "shouldCheckMamlBoughtState" + }.createHook { + after { + it.result = false } + } - loadClass("com.miui.personalassistant.picker.business.detail.PickerDetailViewModel").methodFinder() - .first { - name == "isTargetPositionMamlPayAndDownloading" - }.createHook { - returnConstant(false) + loadClass("com.miui.personalassistant.picker.business.detail.PickerDetailViewModel").methodFinder().first { + name == "isTargetPositionMamlPayAndDownloading" + }.createHook { + after { + it.result = false } + } - loadClass("com.miui.personalassistant.picker.business.detail.PickerDetailViewModel").methodFinder() - .first { - name == "checkIsIndependentProcessWidgetForPosition" - }.createHook { - returnConstant(true) + loadClass("com.miui.personalassistant.picker.business.detail.PickerDetailViewModel").methodFinder().first { + name == "checkIsIndependentProcessWidgetForPosition" + }.createHook { + after { + it.result = true } - } catch (t: Throwable) { - Log.ex(t) } } } diff --git a/app/src/main/java/com/sevtinge/cemiuiler/module/systemframework/ThemeProvider.kt b/app/src/main/java/com/sevtinge/cemiuiler/module/systemframework/ThemeProvider.kt index ef073647c..8e8773c40 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/module/systemframework/ThemeProvider.kt +++ b/app/src/main/java/com/sevtinge/cemiuiler/module/systemframework/ThemeProvider.kt @@ -13,18 +13,26 @@ class ThemeProvider : BaseHook() { override fun init() { var hook: List? = null try { - ThemeReceiver::class.java.methodFinder().filterByName("validateTheme").first().createHook { + (ThemeReceiver::class.java).methodFinder().first { + name == "validateTheme" + }.createHook { before { - hook = DrmManager::class.java.methodFinder().filterByName("isLegal").toList().createHooks { - returnConstant(DrmManager.DrmResult.DRM_SUCCESS) + hook = (DrmManager::class.java).methodFinder().filter { + name == "isLegal" + }.toList().createHooks { + before { + it.result = DrmManager.DrmResult.DRM_SUCCESS + } } } after { - hook?.forEach { it.unhook() } + hook?.forEach { + it.unhook() + } } } } catch (t: Throwable) { Log.ex(t) } } -} +} \ No newline at end of file From 4962d66997c263eac0124de483edf6644ac63135 Mon Sep 17 00:00:00 2001 From: mu7220 <80700814+mu7220@users.noreply.github.com> Date: Tue, 13 Jun 2023 16:08:43 +0800 Subject: [PATCH 18/24] =?UTF-8?q?=E5=9B=9E=E6=BB=9A=20+=201?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sevtinge/cemiuiler/module/thememanager/ThemeCrackNew.kt | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/sevtinge/cemiuiler/module/thememanager/ThemeCrackNew.kt b/app/src/main/java/com/sevtinge/cemiuiler/module/thememanager/ThemeCrackNew.kt index 3c4499f6d..0fb4d04ad 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/module/thememanager/ThemeCrackNew.kt +++ b/app/src/main/java/com/sevtinge/cemiuiler/module/thememanager/ThemeCrackNew.kt @@ -74,10 +74,8 @@ class ThemeCrackNew : BaseHook() { largeIconMethod.createHook { before { val resource = (it.thisObject.javaClass).fieldFinder().first { - type == loadClass( - "com.android.thememanager.basemodule.resource.model.Resource", - lpparam.classLoader - ) + type == + loadClass("com.android.thememanager.basemodule.resource.model.Resource", lpparam.classLoader) } val productId = it.thisObject.getObjectField(resource.name) From b3853fa7194723649014507b23fbeff9c11af29b Mon Sep 17 00:00:00 2001 From: mu7220 <80700814+mu7220@users.noreply.github.com> Date: Tue, 13 Jun 2023 16:20:35 +0800 Subject: [PATCH 19/24] =?UTF-8?q?=E4=BC=98=E5=8C=96=20=E9=83=A8=E5=88=86?= =?UTF-8?q?=E7=95=8C=E9=9D=A2=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sevtinge/cemiuiler/module/SystemUI.java | 2 +- app/src/main/res/xml/package_installer.xml | 12 +++---- ..._ui_status_bar_network_speed_indicator.xml | 35 ++++++++++--------- 3 files changed, 25 insertions(+), 24 deletions(-) diff --git a/app/src/main/java/com/sevtinge/cemiuiler/module/SystemUI.java b/app/src/main/java/com/sevtinge/cemiuiler/module/SystemUI.java index 240af52ab..6ac535dc8 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/module/SystemUI.java +++ b/app/src/main/java/com/sevtinge/cemiuiler/module/SystemUI.java @@ -121,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")); diff --git a/app/src/main/res/xml/package_installer.xml b/app/src/main/res/xml/package_installer.xml index 8f601804c..49929ee1e 100644 --- a/app/src/main/res/xml/package_installer.xml +++ b/app/src/main/res/xml/package_installer.xml @@ -34,6 +34,12 @@ android:title="@string/miui_package_installer_count_checking" android:defaultValue="false" /> + + - - diff --git a/app/src/main/res/xml/system_ui_status_bar_network_speed_indicator.xml b/app/src/main/res/xml/system_ui_status_bar_network_speed_indicator.xml index 23c492ec3..440cb38bb 100644 --- a/app/src/main/res/xml/system_ui_status_bar_network_speed_indicator.xml +++ b/app/src/main/res/xml/system_ui_status_bar_network_speed_indicator.xml @@ -36,22 +36,6 @@ android:summary="@string/system_ui_status_bar_no_netspeed_separator_desc" android:title="@string/system_ui_status_bar_no_netspeed_separator_title" /> - - - - - + + + + Date: Tue, 13 Jun 2023 17:12:52 +0800 Subject: [PATCH 20/24] =?UTF-8?q?=E6=89=8B=E6=9C=BA=E7=AE=A1=E5=AE=B6-?= =?UTF-8?q?=E4=BE=A7=E8=BE=B9=E6=A0=8F=E6=A8=A1=E7=B3=8A=20=E9=80=82?= =?UTF-8?q?=E9=85=8D=207.7.4-230423.0.3=E3=80=817.7.5=E3=80=817.8.5=20?= =?UTF-8?q?=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cemiuiler/module/securitycenter/BlurSecurity.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/sevtinge/cemiuiler/module/securitycenter/BlurSecurity.kt b/app/src/main/java/com/sevtinge/cemiuiler/module/securitycenter/BlurSecurity.kt index 0876d282d..c4de399a1 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/module/securitycenter/BlurSecurity.kt +++ b/app/src/main/java/com/sevtinge/cemiuiler/module/securitycenter/BlurSecurity.kt @@ -62,15 +62,15 @@ object BlurSecurity : BaseHook() { when { getPackageVersionCode(lpparam) in 40000749..40000750 || getPackageVersionCode(lpparam) == 40000770 || - getPackageVersionCode(lpparam) == 40000780 -> { + getPackageVersionCode(lpparam) >= 40000780 -> { appVersionCode = 40000749 videoBoxViewClass = findClassIfExists("t7.i") ?: return videoBoxViewMethodName = "i" } - getPackageVersionCode(lpparam) in 40000771..40000776 -> { + getPackageVersionCode(lpparam) in 40000771..40000774 -> { appVersionCode = 40000771 - videoBoxViewClass = findClassIfExists("r7.m") ?: return + videoBoxViewClass = findClassIfExists("r7.m") ?: findClassIfExists("t7.i") ?: return videoBoxViewMethodName = "j" } From 155848efd74823aba5b50b7e3777219f1bf014f9 Mon Sep 17 00:00:00 2001 From: mu7220 <80700814+mu7220@users.noreply.github.com> Date: Tue, 13 Jun 2023 20:00:50 +0800 Subject: [PATCH 21/24] =?UTF-8?q?=E4=BC=98=E5=8C=96=20=E7=B3=BB=E7=BB=9F?= =?UTF-8?q?=E7=95=8C=E9=9D=A2-=E9=94=81=E5=B1=8F-=E5=8F=8C=E5=87=BB?= =?UTF-8?q?=E7=A9=BA=E7=99=BD=E4=BD=8D=E7=BD=AE=E9=94=81=E5=B1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sevtinge/cemiuiler/module/SystemUI.java | 4 +- .../module/securitycenter/BlurSecurity.kt | 2 +- .../lockscreen/LockScreenDoubleTapToSleep.kt | 39 +++++++++---------- .../module/systemui/lockscreen/NoPassword.kt | 4 +- 4 files changed, 23 insertions(+), 26 deletions(-) diff --git a/app/src/main/java/com/sevtinge/cemiuiler/module/SystemUI.java b/app/src/main/java/com/sevtinge/cemiuiler/module/SystemUI.java index 6ac535dc8..276d4fe97 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/module/SystemUI.java +++ b/app/src/main/java/com/sevtinge/cemiuiler/module/SystemUI.java @@ -35,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; @@ -206,7 +206,7 @@ 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")); diff --git a/app/src/main/java/com/sevtinge/cemiuiler/module/securitycenter/BlurSecurity.kt b/app/src/main/java/com/sevtinge/cemiuiler/module/securitycenter/BlurSecurity.kt index c4de399a1..194ecbd67 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/module/securitycenter/BlurSecurity.kt +++ b/app/src/main/java/com/sevtinge/cemiuiler/module/securitycenter/BlurSecurity.kt @@ -68,7 +68,7 @@ object BlurSecurity : BaseHook() { videoBoxViewMethodName = "i" } - getPackageVersionCode(lpparam) in 40000771..40000774 -> { + getPackageVersionCode(lpparam) in 40000771..40000776 -> { appVersionCode = 40000771 videoBoxViewClass = findClassIfExists("r7.m") ?: findClassIfExists("t7.i") ?: return videoBoxViewMethodName = "j" diff --git a/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/lockscreen/LockScreenDoubleTapToSleep.kt b/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/lockscreen/LockScreenDoubleTapToSleep.kt index a75d9dfac..2cf063215 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/lockscreen/LockScreenDoubleTapToSleep.kt +++ b/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/lockscreen/LockScreenDoubleTapToSleep.kt @@ -1,6 +1,5 @@ package com.sevtinge.cemiuiler.module.systemui.lockscreen -import android.app.KeyguardManager import android.content.Context import android.os.SystemClock import android.view.MotionEvent @@ -10,6 +9,8 @@ import com.github.kyuubiran.ezxhelper.HookFactory.`-Static`.createHook import com.github.kyuubiran.ezxhelper.finders.MethodFinder.`-Static`.methodFinder import com.sevtinge.cemiuiler.module.base.BaseHook import de.robv.android.xposed.XposedHelpers +import de.robv.android.xposed.XposedHelpers.getAdditionalInstanceField +import de.robv.android.xposed.XposedHelpers.setAdditionalInstanceField object LockScreenDoubleTapToSleep : BaseHook() { override fun init() { @@ -18,18 +19,18 @@ object LockScreenDoubleTapToSleep : BaseHook() { }.createHook { before { val view = it.thisObject as View - XposedHelpers.setAdditionalInstanceField(view, "currentTouchTime", 0L) - XposedHelpers.setAdditionalInstanceField(view, "currentTouchX", 0f) - XposedHelpers.setAdditionalInstanceField(view, "currentTouchY", 0f) + setAdditionalInstanceField(view, "currentTouchTime", 0L) + setAdditionalInstanceField(view, "currentTouchX", 0f) + setAdditionalInstanceField(view, "currentTouchY", 0f) view.setOnTouchListener(View.OnTouchListener { v, event -> if (event.action != MotionEvent.ACTION_DOWN) return@OnTouchListener false var currentTouchTime = - XposedHelpers.getAdditionalInstanceField(view, "currentTouchTime") as Long + getAdditionalInstanceField(view, "currentTouchTime") as Long var currentTouchX = - XposedHelpers.getAdditionalInstanceField(view, "currentTouchX") as Float + getAdditionalInstanceField(view, "currentTouchX") as Float var currentTouchY = - XposedHelpers.getAdditionalInstanceField(view, "currentTouchY") as Float + getAdditionalInstanceField(view, "currentTouchY") as Float val lastTouchTime = currentTouchTime val lastTouchX = currentTouchX val lastTouchY = currentTouchY @@ -42,27 +43,23 @@ object LockScreenDoubleTapToSleep : BaseHook() { && kotlin.math.abs(currentTouchX - lastTouchX) < 100f && kotlin.math.abs(currentTouchY - lastTouchY) < 100f ) { - val keyguardMgr = - v.context.getSystemService(Context.KEYGUARD_SERVICE) as KeyguardManager - - if (keyguardMgr.isKeyguardLocked) { - XposedHelpers.callMethod( - v.context.getSystemService(Context.POWER_SERVICE), - "goToSleep", - SystemClock.uptimeMillis() - ) - } + XposedHelpers.callMethod( + v.context.getSystemService(Context.POWER_SERVICE), + "goToSleep", + SystemClock.uptimeMillis() + ) currentTouchTime = 0L currentTouchX = 0f currentTouchY = 0f } - XposedHelpers.setAdditionalInstanceField( + + setAdditionalInstanceField( view, "currentTouchTime", currentTouchTime ) - XposedHelpers.setAdditionalInstanceField(view, "currentTouchX", currentTouchX) - XposedHelpers.setAdditionalInstanceField(view, "currentTouchY", currentTouchY) + setAdditionalInstanceField(view, "currentTouchX", currentTouchX) + setAdditionalInstanceField(view, "currentTouchY", currentTouchY) v.performClick() false }) @@ -70,4 +67,4 @@ object LockScreenDoubleTapToSleep : BaseHook() { } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/lockscreen/NoPassword.kt b/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/lockscreen/NoPassword.kt index fd9efa7ee..e62fa5f83 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/lockscreen/NoPassword.kt +++ b/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/lockscreen/NoPassword.kt @@ -5,7 +5,7 @@ import com.github.kyuubiran.ezxhelper.HookFactory.`-Static`.createHook import com.github.kyuubiran.ezxhelper.finders.MethodFinder.`-Static`.methodFinder import com.sevtinge.cemiuiler.module.base.BaseHook -object NoPasswordHook : BaseHook() { +object NoPassword : BaseHook() { override fun init() { loadClass("com.android.internal.widget.LockPatternUtils\$StrongAuthTracker").methodFinder().first { name == "isBiometricAllowedForUser" @@ -24,4 +24,4 @@ object NoPasswordHook : BaseHook() { } } -} \ No newline at end of file +} From 3c0b53978f0e93052b3065032490c07ecf750ceb Mon Sep 17 00:00:00 2001 From: mu7220 <80700814+mu7220@users.noreply.github.com> Date: Tue, 13 Jun 2023 20:08:27 +0800 Subject: [PATCH 22/24] =?UTF-8?q?Revert=20"=E4=BF=AE=E5=A4=8D=20=E9=9A=90?= =?UTF-8?q?=E8=97=8F=E6=85=A2=E9=80=9F=E4=B8=8B=E5=81=B6=E7=8E=B0=E9=80=9A?= =?UTF-8?q?=E7=9F=A5=E6=A0=8F=E5=87=BA=E7=8E=B0=E5=8D=A0=E4=BD=8D=E7=A9=BA?= =?UTF-8?q?=E7=99=BD=E9=97=AE=E9=A2=98"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 5d681b4ae026dc47d2feb630185615da07e89a0a. --- .../module/systemui/statusbar/network/NetworkSpeed.kt | 6 +++--- app/src/main/res/values/strings.xml | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/statusbar/network/NetworkSpeed.kt b/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/statusbar/network/NetworkSpeed.kt index c3c483a78..3b06865f7 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/statusbar/network/NetworkSpeed.kt +++ b/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/statusbar/network/NetworkSpeed.kt @@ -198,7 +198,7 @@ object NetworkSpeed : BaseHook() { !mPrefsMap.getBoolean("system_ui_statusbar_network_speed_fakedualrow") ) { if (hideLow && (txSpeed + rxSpeed) < lowLevel) { - param.args[0] = "" + param.args[0] = "".trimIndent() } else { param.args[0] = """ $tx @@ -207,13 +207,13 @@ object NetworkSpeed : BaseHook() { } } else if (mPrefsMap.getBoolean("system_ui_statusbar_network_speed_fakedualrow")) { if (hideLow && (txSpeed + rxSpeed) < lowLevel) { - param.args[0] = "" + param.args[0] = "".trimIndent() } else { param.args[0] = ax.trimIndent() } } else { if (hideLow && (txSpeed + rxSpeed) < lowLevel) { - param.args[0] = "" + param.args[0] = "".trimIndent() } } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 6a1baa3a4..abc6dec41 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1066,6 +1066,7 @@ Cancel Search More + More More Clear up Tablet security center From d36f59398313c0c8a9605dd7e21fabf20ec3bba2 Mon Sep 17 00:00:00 2001 From: mu7220 <80700814+mu7220@users.noreply.github.com> Date: Tue, 13 Jun 2023 21:38:43 +0800 Subject: [PATCH 23/24] =?UTF-8?q?=E4=BC=98=E5=8C=96=20=E7=B3=BB=E7=BB=9F?= =?UTF-8?q?=E7=95=8C=E9=9D=A2-=E9=94=81=E5=B1=8F-=E9=94=81=E5=B1=8F?= =?UTF-8?q?=E7=95=8C=E9=9D=A2=E6=97=B6=E9=92=9F=E4=BD=BF=E7=94=A8=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F=E5=AD=97=E4=BD=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ForceClockUseSystemFontsHook.kt | 52 +++++++++---------- app/src/main/res/values/strings.xml | 1 - 2 files changed, 24 insertions(+), 29 deletions(-) diff --git a/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/lockscreen/ForceClockUseSystemFontsHook.kt b/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/lockscreen/ForceClockUseSystemFontsHook.kt index d066ad47f..cac2be3bb 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/lockscreen/ForceClockUseSystemFontsHook.kt +++ b/app/src/main/java/com/sevtinge/cemiuiler/module/systemui/lockscreen/ForceClockUseSystemFontsHook.kt @@ -2,37 +2,33 @@ package com.sevtinge.cemiuiler.module.systemui.lockscreen import android.graphics.Typeface import android.widget.TextView +import com.github.kyuubiran.ezxhelper.ClassUtils.loadClass +import com.github.kyuubiran.ezxhelper.HookFactory.`-Static`.createHooks +import com.github.kyuubiran.ezxhelper.finders.MethodFinder.`-Static`.methodFinder import com.sevtinge.cemiuiler.module.base.BaseHook -import com.sevtinge.cemiuiler.utils.Helpers -import de.robv.android.xposed.XposedHelpers +import com.sevtinge.cemiuiler.utils.getObjectFieldAs object ForceClockUseSystemFontsHook : BaseHook() { override fun init() { - Helpers.findAndHookMethod( - "com.miui.clock.MiuiBaseClock", lpparam.classLoader, - "updateViewsTextSize", - object : MethodHook() { - @Throws(Throwable::class) - override fun after(param: MethodHookParam) { - val mTimeText = - XposedHelpers.getObjectField(param.thisObject, "mTimeText") as TextView - mTimeText.typeface = Typeface.DEFAULT - } - }) - Helpers.findAndHookMethod( - "com.miui.clock.MiuiLeftTopLargeClock", lpparam.classLoader, - "onLanguageChanged", - String::class.java, - object : MethodHook() { - @Throws(Throwable::class) - override fun after(param: MethodHookParam) { - val mTimeText = XposedHelpers.getObjectField( - param.thisObject, - "mCurrentDateLarge" - ) as TextView - mTimeText.typeface = Typeface.DEFAULT - } - }) + loadClass("com.miui.clock.MiuiBaseClock").methodFinder().filter { + name == "updateViewsTextSize" + }.toList().createHooks { + after { param -> + val mTimeText = + param.thisObject.getObjectFieldAs("mTimeText") + mTimeText.typeface = Typeface.DEFAULT + } + } + + loadClass("com.miui.clock.MiuiLeftTopLargeClock").methodFinder().filter { + name == "onLanguageChanged" + }.toList().createHooks { + after { param -> + val mTimeText = + param.thisObject.getObjectFieldAs("mCurrentDateLarge") + mTimeText.typeface = Typeface.DEFAULT + } + } } -} \ No newline at end of file +} diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index abc6dec41..6a1baa3a4 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1066,7 +1066,6 @@ Cancel Search More - More More Clear up Tablet security center From a1a445a901ca9d07df6a1393298e0110d8adaef1 Mon Sep 17 00:00:00 2001 From: mu7220 <80700814+mu7220@users.noreply.github.com> Date: Tue, 13 Jun 2023 21:41:39 +0800 Subject: [PATCH 24/24] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20=E7=B3=BB=E7=BB=9F?= =?UTF-8?q?=E6=A1=86=E6=9E=B6-=E5=B0=8F=E7=AA=97-=E5=85=B6=E4=BB=96=20?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E5=85=B3=E9=97=AD=E5=8A=9F=E8=83=BD=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/sevtinge/cemiuiler/module/SystemFramework.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/app/src/main/java/com/sevtinge/cemiuiler/module/SystemFramework.java b/app/src/main/java/com/sevtinge/cemiuiler/module/SystemFramework.java index a919733d8..8c209fd22 100644 --- a/app/src/main/java/com/sevtinge/cemiuiler/module/SystemFramework.java +++ b/app/src/main/java/com/sevtinge/cemiuiler/module/SystemFramework.java @@ -54,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")); // 音量