From edc86274a5f4d79d6537310e5db21e5b641eaeb2 Mon Sep 17 00:00:00 2001 From: 1fexd Date: Sun, 7 Apr 2024 22:31:03 +0200 Subject: [PATCH 1/4] feat(amazon): Always allow deep-linking --- api/revanced-patches.api | 6 +++++ .../deeplinking/DeepLinkingFingerprint.kt | 11 ++++++++ .../amazon/deeplinking/DeepLinkingPatch.kt | 27 +++++++++++++++++++ 3 files changed, 44 insertions(+) create mode 100644 src/main/kotlin/app/revanced/patches/amazon/deeplinking/DeepLinkingFingerprint.kt create mode 100644 src/main/kotlin/app/revanced/patches/amazon/deeplinking/DeepLinkingPatch.kt diff --git a/api/revanced-patches.api b/api/revanced-patches.api index 4bba02a523..7145a0b7e9 100644 --- a/api/revanced-patches.api +++ b/api/revanced-patches.api @@ -152,6 +152,12 @@ public final class app/revanced/patches/all/telephony/sim/spoof/SpoofSimCountryP public fun transform (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;Lkotlin/Pair;)V } +public final class app/revanced/patches/amazon/deeplinking/DeepLinkingPatch : app/revanced/patcher/patch/BytecodePatch { + public static final field INSTANCE Lapp/revanced/patches/amazon/deeplinking/DeepLinkingPatch; + public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V + public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V +} + public final class app/revanced/patches/backdrops/misc/pro/ProUnlockPatch : app/revanced/patcher/patch/BytecodePatch { public static final field INSTANCE Lapp/revanced/patches/backdrops/misc/pro/ProUnlockPatch; public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V diff --git a/src/main/kotlin/app/revanced/patches/amazon/deeplinking/DeepLinkingFingerprint.kt b/src/main/kotlin/app/revanced/patches/amazon/deeplinking/DeepLinkingFingerprint.kt new file mode 100644 index 0000000000..8caa3ece4e --- /dev/null +++ b/src/main/kotlin/app/revanced/patches/amazon/deeplinking/DeepLinkingFingerprint.kt @@ -0,0 +1,11 @@ +package app.revanced.patches.amazon.deeplinking + +import app.revanced.patcher.fingerprint.MethodFingerprint +import com.android.tools.smali.dexlib2.AccessFlags + +internal object DeepLinkingFingerprint : MethodFingerprint( + "Z", + parameters = listOf("L"), + accessFlags = AccessFlags.PRIVATE.value, + strings = listOf("https://www.", "android.intent.action.VIEW") +) diff --git a/src/main/kotlin/app/revanced/patches/amazon/deeplinking/DeepLinkingPatch.kt b/src/main/kotlin/app/revanced/patches/amazon/deeplinking/DeepLinkingPatch.kt new file mode 100644 index 0000000000..5ae504a4c3 --- /dev/null +++ b/src/main/kotlin/app/revanced/patches/amazon/deeplinking/DeepLinkingPatch.kt @@ -0,0 +1,27 @@ +package app.revanced.patches.amazon.deeplinking + +import app.revanced.patcher.data.BytecodeContext +import app.revanced.patcher.extensions.InstructionExtensions.addInstructions +import app.revanced.patcher.patch.BytecodePatch +import app.revanced.patcher.patch.annotation.CompatiblePackage +import app.revanced.patcher.patch.annotation.Patch + +@Patch( + name = "Always allow deep-linking", + description = "Always allow deep-linking", + compatiblePackages = [CompatiblePackage("com.amazon.mShop.android.shopping")] +) +@Suppress("unused") +object DeepLinkingPatch : BytecodePatch( + setOf(DeepLinkingFingerprint) +) { + override fun execute(context: BytecodeContext) { + DeepLinkingFingerprint.result!!.mutableMethod.addInstructions( + 0, + """ + const/4 v0, 0x1 + return v0 + """ + ) + } +} From 9fca3d0e43bb5ecba1df7615e41ead270f860105 Mon Sep 17 00:00:00 2001 From: 1fexd Date: Sun, 7 Apr 2024 23:35:12 +0200 Subject: [PATCH 2/4] chore(amazon): Improve description --- .../app/revanced/patches/amazon/deeplinking/DeepLinkingPatch.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/kotlin/app/revanced/patches/amazon/deeplinking/DeepLinkingPatch.kt b/src/main/kotlin/app/revanced/patches/amazon/deeplinking/DeepLinkingPatch.kt index 5ae504a4c3..b7b8dbe169 100644 --- a/src/main/kotlin/app/revanced/patches/amazon/deeplinking/DeepLinkingPatch.kt +++ b/src/main/kotlin/app/revanced/patches/amazon/deeplinking/DeepLinkingPatch.kt @@ -8,7 +8,7 @@ import app.revanced.patcher.patch.annotation.Patch @Patch( name = "Always allow deep-linking", - description = "Always allow deep-linking", + description = "Allows the Amazon app to open Amazon links, even if it is not the default link handler for Amazon domains.", compatiblePackages = [CompatiblePackage("com.amazon.mShop.android.shopping")] ) @Suppress("unused") From cf315cb113575ae84f47f036b8c5042c2a11fc6e Mon Sep 17 00:00:00 2001 From: 1fexd <58902674+1fexd@users.noreply.github.com> Date: Mon, 8 Apr 2024 06:23:56 +0000 Subject: [PATCH 3/4] Update src/main/kotlin/app/revanced/patches/amazon/deeplinking/DeepLinkingPatch.kt Co-authored-by: oSumAtrIX --- .../app/revanced/patches/amazon/deeplinking/DeepLinkingPatch.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/kotlin/app/revanced/patches/amazon/deeplinking/DeepLinkingPatch.kt b/src/main/kotlin/app/revanced/patches/amazon/deeplinking/DeepLinkingPatch.kt index b7b8dbe169..e8a1c7643b 100644 --- a/src/main/kotlin/app/revanced/patches/amazon/deeplinking/DeepLinkingPatch.kt +++ b/src/main/kotlin/app/revanced/patches/amazon/deeplinking/DeepLinkingPatch.kt @@ -8,7 +8,7 @@ import app.revanced.patcher.patch.annotation.Patch @Patch( name = "Always allow deep-linking", - description = "Allows the Amazon app to open Amazon links, even if it is not the default link handler for Amazon domains.", + description = "Open Amazon links, even if the app is not set to handle Amazon links.", compatiblePackages = [CompatiblePackage("com.amazon.mShop.android.shopping")] ) @Suppress("unused") From 25d6e972f0fe631bb5319c67475c2330756d0e4f Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Tue, 9 Apr 2024 19:40:53 +0200 Subject: [PATCH 4/4] throw error --- .../revanced/patches/amazon/deeplinking/DeepLinkingPatch.kt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/app/revanced/patches/amazon/deeplinking/DeepLinkingPatch.kt b/src/main/kotlin/app/revanced/patches/amazon/deeplinking/DeepLinkingPatch.kt index e8a1c7643b..96cf445459 100644 --- a/src/main/kotlin/app/revanced/patches/amazon/deeplinking/DeepLinkingPatch.kt +++ b/src/main/kotlin/app/revanced/patches/amazon/deeplinking/DeepLinkingPatch.kt @@ -5,6 +5,7 @@ import app.revanced.patcher.extensions.InstructionExtensions.addInstructions import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.annotation.CompatiblePackage import app.revanced.patcher.patch.annotation.Patch +import app.revanced.util.exception @Patch( name = "Always allow deep-linking", @@ -16,12 +17,12 @@ object DeepLinkingPatch : BytecodePatch( setOf(DeepLinkingFingerprint) ) { override fun execute(context: BytecodeContext) { - DeepLinkingFingerprint.result!!.mutableMethod.addInstructions( + DeepLinkingFingerprint.result?.mutableMethod?.addInstructions( 0, """ const/4 v0, 0x1 return v0 """ - ) + ) ?: throw DeepLinkingFingerprint.exception } }