From 5418c36716a7f28fd12b809f316ad28d0abdfccd Mon Sep 17 00:00:00 2001 From: Ushie Date: Fri, 30 Sep 2022 21:36:39 +0300 Subject: [PATCH] feat: use patcher for resourcePatch detection (#337) Co-authored-by: Aunali321 --- android/app/build.gradle | 2 +- .../revanced/manager/flutter/MainActivity.kt | 28 +++++++++---------- lib/services/patcher_api.dart | 2 -- 3 files changed, 15 insertions(+), 17 deletions(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index acb4f821..10d29955 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -71,7 +71,7 @@ dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" // ReVanced - implementation "app.revanced:revanced-patcher:5.1.0" + implementation "app.revanced:revanced-patcher:5.1.1" // Signing & aligning implementation("org.bouncycastle:bcpkix-jdk15on:1.70") diff --git a/android/app/src/main/kotlin/app/revanced/manager/flutter/MainActivity.kt b/android/app/src/main/kotlin/app/revanced/manager/flutter/MainActivity.kt index 307170ba..8d46d448 100644 --- a/android/app/src/main/kotlin/app/revanced/manager/flutter/MainActivity.kt +++ b/android/app/src/main/kotlin/app/revanced/manager/flutter/MainActivity.kt @@ -1,5 +1,6 @@ package app.revanced.manager.flutter +import android.os.Build import android.os.Handler import android.os.Looper import androidx.annotation.NonNull @@ -42,7 +43,6 @@ class MainActivity : FlutterActivity() { val selectedPatches = call.argument>("selectedPatches") val cacheDirPath = call.argument("cacheDirPath") val mergeIntegrations = call.argument("mergeIntegrations") - val resourcePatching = call.argument("resourcePatching") val keyStoreFilePath = call.argument("keyStoreFilePath") if (patchBundleFilePath != null && originalFilePath != null && @@ -53,7 +53,6 @@ class MainActivity : FlutterActivity() { selectedPatches != null && cacheDirPath != null && mergeIntegrations != null && - resourcePatching != null && keyStoreFilePath != null ) { runPatcher( @@ -67,7 +66,6 @@ class MainActivity : FlutterActivity() { selectedPatches, cacheDirPath, mergeIntegrations, - resourcePatching, keyStoreFilePath ) } else { @@ -90,7 +88,6 @@ class MainActivity : FlutterActivity() { selectedPatches: List, cacheDirPath: String, mergeIntegrations: Boolean, - resourcePatching: Boolean, keyStoreFilePath: String ) { val originalFile = File(originalFilePath) @@ -102,16 +99,20 @@ class MainActivity : FlutterActivity() { Thread { try { - val patches = DexPatchBundle( - patchBundleFilePath, - DexClassLoader( + val patches = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.CUPCAKE) { + DexPatchBundle( patchBundleFilePath, - cacheDirPath, - null, - javaClass.classLoader - ) - ).loadPatches().filter { patch -> selectedPatches.any { it == patch.patchName } } - + DexClassLoader( + patchBundleFilePath, + cacheDirPath, + null, + javaClass.classLoader + ) + ).loadPatches().filter { patch -> selectedPatches.any { it == patch.patchName } } + } else { + TODO("VERSION.SDK_INT < CUPCAKE") + } + handler.post { installerChannel.invokeMethod( "update", @@ -139,7 +140,6 @@ class MainActivity : FlutterActivity() { PatcherOptions( inputFile, cacheDirPath, - resourcePatching, Aapt.binary(applicationContext).absolutePath, cacheDirPath, logger = ManagerLogger() diff --git a/lib/services/patcher_api.dart b/lib/services/patcher_api.dart index b89732cf..f70d6a1b 100644 --- a/lib/services/patcher_api.dart +++ b/lib/services/patcher_api.dart @@ -142,7 +142,6 @@ class PatcherAPI { List selectedPatches, ) async { bool mergeIntegrations = await needsIntegrations(selectedPatches); - bool resourcePatching = await needsResourcePatching(selectedPatches); bool includeSettings = await needsSettingsPatch(selectedPatches); if (includeSettings) { try { @@ -186,7 +185,6 @@ class PatcherAPI { 'selectedPatches': selectedPatches.map((p) => p.name).toList(), 'cacheDirPath': cacheDir.path, 'mergeIntegrations': mergeIntegrations, - 'resourcePatching': resourcePatching, 'keyStoreFilePath': _keyStoreFile.path, }, );