From a44802ef4ebf59ae47213854ba761c81dadc51f3 Mon Sep 17 00:00:00 2001 From: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com> Date: Tue, 15 Oct 2024 07:39:33 -0400 Subject: [PATCH] fix: Make it work on Android 12 and lower by using existing APIs (#312) Co-authored-by: oSumAtrIX --- .../app/revanced/patcher/patch/BytecodePatchContext.kt | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/main/kotlin/app/revanced/patcher/patch/BytecodePatchContext.kt b/src/main/kotlin/app/revanced/patcher/patch/BytecodePatchContext.kt index 6c219c78..e9e881a2 100644 --- a/src/main/kotlin/app/revanced/patcher/patch/BytecodePatchContext.kt +++ b/src/main/kotlin/app/revanced/patcher/patch/BytecodePatchContext.kt @@ -62,17 +62,16 @@ class BytecodePatchContext internal constructor(private val config: PatcherConfi * Merge the extensions for this set of patches. */ internal fun Set>.mergeExtensions() { - // Lookup map for fast checking if a class exists by its type. + // Lookup map to check if a class exists by its type quickly. val classesByType = mutableMapOf().apply { classes.forEach { classDef -> put(classDef.type, classDef) } } forEachRecursively { patch -> - if (patch is BytecodePatch && patch.extension != null) { + if (patch !is BytecodePatch) return@forEachRecursively - val extension = patch.extension.readAllBytes() - - RawDexIO.readRawDexFile(extension, 0, null).classes.forEach { classDef -> + patch.extension?.use { extensionStream -> + RawDexIO.readRawDexFile(extensionStream, 0, null).classes.forEach { classDef -> val existingClass = classesByType[classDef.type] ?: run { logger.fine("Adding class \"$classDef\"")