From 1b7898a0922f579f997758ba78c3ad72e843bf89 Mon Sep 17 00:00:00 2001 From: Wang Han Date: Fri, 13 Oct 2023 22:05:49 +0800 Subject: [PATCH] Update for U compatibility and bump version to 4.3 (#85) --- app/build.gradle.kts | 12 ++++++------ .../toolkit/coderstory/CorePatchForSv2.java | 4 ---- .../toolkit/coderstory/CorePatchForT.java | 8 +++++--- .../toolkit/coderstory/CorePatchForU.java | 19 +++++++++++++++++++ .../java/toolkit/coderstory/MainHook.java | 10 ++++++---- app/src/main/res/values-fr/strings.xml | 4 ++-- app/src/main/res/values-ko/strings.xml | 4 ++-- app/src/main/res/values-ru/strings.xml | 4 ++-- app/src/main/res/values-zh-rCN/strings.xml | 4 ++-- app/src/main/res/values/strings.xml | 4 ++-- build.gradle.kts | 2 +- gradle.properties | 2 ++ gradle/wrapper/gradle-wrapper.properties | 2 +- 13 files changed, 50 insertions(+), 29 deletions(-) delete mode 100644 app/src/main/java/toolkit/coderstory/CorePatchForSv2.java create mode 100644 app/src/main/java/toolkit/coderstory/CorePatchForU.java diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 867d3cb..4e62d8f 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -10,14 +10,14 @@ val releaseKeyAlias: String? by rootProject val releaseKeyPassword: String? by rootProject android { - compileSdk = 33 - buildToolsVersion = "33.0.0" + compileSdk = 34 + buildToolsVersion = "34.0.0" defaultConfig { applicationId = "com.coderstory.toolkit" minSdk = 29 - targetSdk = 33 - versionCode = 1997 - versionName = "4.2" + targetSdk = 34 + versionCode = 2000 + versionName = "4.3" } signingConfigs { @@ -85,7 +85,7 @@ val optimizeReleaseRes = task("optimizeReleaseRes").doLast { optimized.renameTo(zip.toFile()) } } -tasks.whenTaskAdded { +tasks.configureEach { when (name) { "optimizeReleaseResources" -> { finalizedBy(optimizeReleaseRes) diff --git a/app/src/main/java/toolkit/coderstory/CorePatchForSv2.java b/app/src/main/java/toolkit/coderstory/CorePatchForSv2.java deleted file mode 100644 index 197e881..0000000 --- a/app/src/main/java/toolkit/coderstory/CorePatchForSv2.java +++ /dev/null @@ -1,4 +0,0 @@ -package toolkit.coderstory; - -public class CorePatchForSv2 extends CorePatchForS{ -} diff --git a/app/src/main/java/toolkit/coderstory/CorePatchForT.java b/app/src/main/java/toolkit/coderstory/CorePatchForT.java index b0a5539..535dc95 100644 --- a/app/src/main/java/toolkit/coderstory/CorePatchForT.java +++ b/app/src/main/java/toolkit/coderstory/CorePatchForT.java @@ -9,7 +9,7 @@ import de.robv.android.xposed.XposedHelpers; import de.robv.android.xposed.callbacks.XC_LoadPackage; -public class CorePatchForT extends CorePatchForSv2 { +public class CorePatchForT extends CorePatchForS { @Override public void handleLoadPackage(XC_LoadPackage.LoadPackageParam loadPackageParam) throws IllegalAccessException, InvocationTargetException, InstantiationException { super.handleLoadPackage(loadPackageParam); @@ -29,8 +29,10 @@ protected void beforeHookedMethod(MethodHookParam param) { // Don't handle PERMISSION (grant SIGNATURE permissions to pkgs with this cert) // Or applications will have all privileged permissions // https://cs.android.com/android/platform/superproject/+/master:frameworks/base/core/java/android/content/pm/PackageParser.java;l=5947?q=CertCapabilities - if (((Integer) param.args[1] != 4) && prefs.getBoolean("digestCreak", true)) { - param.setResult(true); + if (prefs.getBoolean("digestCreak", true)) { + if ((Integer) param.args[1] != 4) { + param.setResult(true); + } } } }); diff --git a/app/src/main/java/toolkit/coderstory/CorePatchForU.java b/app/src/main/java/toolkit/coderstory/CorePatchForU.java new file mode 100644 index 0000000..e382b71 --- /dev/null +++ b/app/src/main/java/toolkit/coderstory/CorePatchForU.java @@ -0,0 +1,19 @@ +package toolkit.coderstory; + +import java.lang.reflect.InvocationTargetException; + +import de.robv.android.xposed.callbacks.XC_LoadPackage; + +public class CorePatchForU extends CorePatchForT { + @Override + public void handleLoadPackage(XC_LoadPackage.LoadPackageParam loadPackageParam) throws IllegalAccessException, InvocationTargetException, InstantiationException { + super.handleLoadPackage(loadPackageParam); + + // ee11a9c (Rename AndroidPackageApi to AndroidPackage) + findAndHookMethod("com.android.server.pm.PackageManagerServiceUtils", loadPackageParam.classLoader, + "checkDowngrade", + "com.android.server.pm.pkg.AndroidPackage", + "android.content.pm.PackageInfoLite", + new ReturnConstant(prefs, "downgrade", null)); + } +} diff --git a/app/src/main/java/toolkit/coderstory/MainHook.java b/app/src/main/java/toolkit/coderstory/MainHook.java index eeebbc7..ec08415 100644 --- a/app/src/main/java/toolkit/coderstory/MainHook.java +++ b/app/src/main/java/toolkit/coderstory/MainHook.java @@ -16,12 +16,13 @@ public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Th if (("android".equals(lpparam.packageName)) && (lpparam.processName.equals("android"))) { Log.d(TAG, "Current sdk version " + Build.VERSION.SDK_INT); switch (Build.VERSION.SDK_INT) { + case Build.VERSION_CODES.UPSIDE_DOWN_CAKE: // 34 + new CorePatchForU().handleLoadPackage(lpparam); + break; case Build.VERSION_CODES.TIRAMISU: // 33 new CorePatchForT().handleLoadPackage(lpparam); break; case Build.VERSION_CODES.S_V2: // 32 - new CorePatchForSv2().handleLoadPackage(lpparam); - break; case Build.VERSION_CODES.S: // 31 new CorePatchForS().handleLoadPackage(lpparam); break; @@ -43,12 +44,13 @@ public void initZygote(StartupParam startupParam) throws Throwable { if (startupParam.startsSystemServer) { Log.d(TAG, "Current sdk version " + Build.VERSION.SDK_INT); switch (Build.VERSION.SDK_INT) { + case Build.VERSION_CODES.UPSIDE_DOWN_CAKE: // 34 + new CorePatchForU().initZygote(startupParam); + break; case Build.VERSION_CODES.TIRAMISU: // 33 new CorePatchForT().initZygote(startupParam); break; case Build.VERSION_CODES.S_V2: // 32 - new CorePatchForSv2().initZygote(startupParam); - break; case Build.VERSION_CODES.S: // 31 new CorePatchForS().initZygote(startupParam); break; diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index c85817e..95b3bee 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -1,7 +1,7 @@ Core Patch - Patch pour Android 10–13 - Cette version est pour 10–13 uniquement.\nMerci d\’utiliser la dernière version de LSPosed. + Patch pour Android 10–14 + Cette version est pour 10–14 uniquement.\nMerci d\’utiliser la dernière version de LSPosed. Permettre la rétrogradation Permettre la rétrogradation d\’applications. Désactiver la vérification digest diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 69cd16e..db1de26 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -1,7 +1,7 @@ Core Patch - Android 10–13 core patch - 이 버전은 Android 10–13 전용입니다.\nLSPosed의 최신 버전을 사용하십시오. + Android 10–14 core patch + 이 버전은 Android 10–14 전용입니다.\nLSPosed의 최신 버전을 사용하십시오. 다운그레이드 허용 애플리케이션 다운그레이드를 허용합니다. 다이제스트 확인 비활성화 diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 123c363..49f91d6 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -7,7 +7,7 @@ Core Patch Отключить проверку дайджеста Позволяет устанавливать приложения после изменения файла в apk (игнорировать недопустимую ошибку дайджеста). - «Эта версия предназначена только для Android 10–13. + «Эта версия предназначена только для Android 10–14. Пожалуйста, используйте последнюю версию LSPposed. " Отключить сравнение подписей Разрешить переустановку приложения с другими подписями. @@ -16,7 +16,7 @@ Расширенный режим Пройдите некоторую проверку в приложении Игнорировать - Android 10–13 core patch + Android 10–14 core patch Похоже, вы используете устаревшую версию LSPposed или LSPposed не активирован, пожалуйста, обновите LSPposed или повторите попытку после активации. Настройки diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 844cb0c..59fecda 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -1,7 +1,7 @@ 核心破解 - Android 10–13 核心破解 - 此版本只支持 Android 10–13\n请安装最新版本的 LSPosed 框架,否则功能可能无法正确启用。 + Android 10–14 核心破解 + 此版本只支持 Android 10–14\n请安装最新版本的 LSPosed 框架,否则功能可能无法正确启用。 允许降级安装应用 允许应用在安装新版本的情况下直接覆盖安装旧版本 禁用软件包管理器签名验证 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index c06f396..5bc502c 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,7 +1,7 @@ Core Patch - Android 10–13 core patch - This version is for Android 10–13 only.\nPlease use the latest version of the LSPosed. + Android 10–14 core patch + This version is for Android 10–14 only.\nPlease use the latest version of the LSPosed. Allow downgrade Allow downgrade applications. Disable digest verify diff --git a/build.gradle.kts b/build.gradle.kts index ef1f842..42c2a28 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -6,7 +6,7 @@ buildscript { mavenCentral() } dependencies { - classpath("com.android.tools.build:gradle:7.3.1") + classpath("com.android.tools.build:gradle:8.1.2") } } diff --git a/gradle.properties b/gradle.properties index d89d7fa..3bb50f3 100644 --- a/gradle.properties +++ b/gradle.properties @@ -19,3 +19,5 @@ android.enableAppCompileTimeRClass=true android.enableR8.fullMode=true android.experimental.enableNewResourceShrinker=true android.experimental.enableNewResourceShrinker.preciseShrinking=true +android.defaults.buildfeatures.buildconfig=true +android.nonFinalResIds=false diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index ae04661..e411586 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists