mirror of
https://github.com/inotia00/revanced-patches.git
synced 2025-05-09 11:04:36 +02:00
fix(Reddit): some patches are broken in version 2023.41.0
This commit is contained in:
parent
a1e4b065d4
commit
7645aa9a07
@ -8,15 +8,21 @@ import app.revanced.patcher.patch.BytecodePatch
|
|||||||
import app.revanced.patcher.patch.annotation.CompatiblePackage
|
import app.revanced.patcher.patch.annotation.CompatiblePackage
|
||||||
import app.revanced.patcher.patch.annotation.Patch
|
import app.revanced.patcher.patch.annotation.Patch
|
||||||
import app.revanced.patches.reddit.layout.place.fingerprints.HomePagerScreenFingerprint
|
import app.revanced.patches.reddit.layout.place.fingerprints.HomePagerScreenFingerprint
|
||||||
|
import app.revanced.patches.reddit.utils.resourceid.SharedResourceIdPatch
|
||||||
|
import app.revanced.patches.reddit.utils.resourceid.SharedResourceIdPatch.ToolBarNavSearchCtaContainer
|
||||||
import app.revanced.patches.reddit.utils.settings.SettingsBytecodePatch.updateSettingsStatus
|
import app.revanced.patches.reddit.utils.settings.SettingsBytecodePatch.updateSettingsStatus
|
||||||
import app.revanced.patches.reddit.utils.settings.SettingsPatch
|
import app.revanced.patches.reddit.utils.settings.SettingsPatch
|
||||||
import app.revanced.util.bytecode.getStringIndex
|
import app.revanced.util.bytecode.getWideLiteralIndex
|
||||||
import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
||||||
|
|
||||||
@Patch(
|
@Patch(
|
||||||
name = "Hide place button",
|
name = "Hide place button",
|
||||||
description = "Hide r/place button in toolbar.",
|
description = "Hide r/place button in toolbar.",
|
||||||
dependencies = [SettingsPatch::class],
|
dependencies =
|
||||||
|
[
|
||||||
|
SettingsPatch::class,
|
||||||
|
SharedResourceIdPatch::class
|
||||||
|
],
|
||||||
compatiblePackages = [CompatiblePackage("com.reddit.frontpage")]
|
compatiblePackages = [CompatiblePackage("com.reddit.frontpage")]
|
||||||
)
|
)
|
||||||
@Suppress("unused")
|
@Suppress("unused")
|
||||||
@ -32,7 +38,7 @@ object PlaceButtonPatch : BytecodePatch(
|
|||||||
HomePagerScreenFingerprint.result?.let {
|
HomePagerScreenFingerprint.result?.let {
|
||||||
it.mutableMethod.apply {
|
it.mutableMethod.apply {
|
||||||
val targetIndex =
|
val targetIndex =
|
||||||
getStringIndex("view.findViewById(Search\u2026nav_search_cta_container)")
|
getWideLiteralIndex(ToolBarNavSearchCtaContainer) + 3
|
||||||
val targetRegister =
|
val targetRegister =
|
||||||
getInstruction<OneRegisterInstruction>(targetIndex - 1).registerA
|
getInstruction<OneRegisterInstruction>(targetIndex - 1).registerA
|
||||||
|
|
||||||
|
@ -2,14 +2,16 @@ package app.revanced.patches.reddit.layout.place.fingerprints
|
|||||||
|
|
||||||
import app.revanced.patcher.extensions.or
|
import app.revanced.patcher.extensions.or
|
||||||
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
||||||
|
import app.revanced.patches.reddit.utils.resourceid.SharedResourceIdPatch.ToolBarNavSearchCtaContainer
|
||||||
|
import app.revanced.util.bytecode.isWideLiteralExists
|
||||||
import com.android.tools.smali.dexlib2.AccessFlags
|
import com.android.tools.smali.dexlib2.AccessFlags
|
||||||
|
|
||||||
object HomePagerScreenFingerprint : MethodFingerprint(
|
object HomePagerScreenFingerprint : MethodFingerprint(
|
||||||
returnType = "Landroid/view/View;",
|
returnType = "Landroid/view/View;",
|
||||||
accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
|
accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
|
||||||
parameters = listOf("Landroid/view/LayoutInflater;", "Landroid/view/ViewGroup;"),
|
parameters = listOf("Landroid/view/LayoutInflater;", "Landroid/view/ViewGroup;"),
|
||||||
strings = listOf("view.findViewById(Search\u2026nav_search_cta_container)"),
|
|
||||||
customFingerprint = { methodDef, _ ->
|
customFingerprint = { methodDef, _ ->
|
||||||
methodDef.definingClass.endsWith("/HomePagerScreen;")
|
methodDef.definingClass.endsWith("/HomePagerScreen;")
|
||||||
|
&& methodDef.isWideLiteralExists(ToolBarNavSearchCtaContainer)
|
||||||
}
|
}
|
||||||
)
|
)
|
@ -9,5 +9,8 @@ import com.android.tools.smali.dexlib2.AccessFlags
|
|||||||
object ScreenshotTakenBannerFingerprint : MethodFingerprint(
|
object ScreenshotTakenBannerFingerprint : MethodFingerprint(
|
||||||
returnType = "V",
|
returnType = "V",
|
||||||
accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
|
accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
|
||||||
customFingerprint = { methodDef, classDef -> methodDef.isWideLiteralExists(ScreenShotShareBanner) && classDef.sourceFile == "ScreenshotTakenBanner.kt" }
|
customFingerprint = { methodDef, classDef ->
|
||||||
|
methodDef.isWideLiteralExists(ScreenShotShareBanner)
|
||||||
|
&& classDef.sourceFile == "ScreenshotTakenBanner.kt"
|
||||||
|
}
|
||||||
)
|
)
|
@ -5,9 +5,8 @@ import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
|||||||
object ShareLinkFormatterFingerprint : MethodFingerprint(
|
object ShareLinkFormatterFingerprint : MethodFingerprint(
|
||||||
returnType = "Ljava/lang/String;",
|
returnType = "Ljava/lang/String;",
|
||||||
parameters = listOf("Ljava/lang/String;", "Ljava/util/Map;"),
|
parameters = listOf("Ljava/lang/String;", "Ljava/util/Map;"),
|
||||||
strings = listOf(
|
customFingerprint = { methodDef, classDef ->
|
||||||
"uri.getQueryParameters(name)",
|
methodDef.definingClass.startsWith("Lcom/reddit/sharing/")
|
||||||
"uri.queryParameterNames",
|
&& classDef.sourceFile == "UrlUtil.kt"
|
||||||
"newUriBuilder.build().toString()"
|
}
|
||||||
),
|
|
||||||
)
|
)
|
@ -5,11 +5,14 @@ import app.revanced.patcher.patch.ResourcePatch
|
|||||||
import app.revanced.patcher.patch.annotation.Patch
|
import app.revanced.patcher.patch.annotation.Patch
|
||||||
import app.revanced.patches.shared.patch.mapping.ResourceMappingPatch
|
import app.revanced.patches.shared.patch.mapping.ResourceMappingPatch
|
||||||
import app.revanced.util.enum.ResourceType
|
import app.revanced.util.enum.ResourceType
|
||||||
|
import app.revanced.util.enum.ResourceType.ID
|
||||||
import app.revanced.util.enum.ResourceType.STRING
|
import app.revanced.util.enum.ResourceType.STRING
|
||||||
|
|
||||||
@Patch(dependencies = [ResourceMappingPatch::class])
|
@Patch(dependencies = [ResourceMappingPatch::class])
|
||||||
object SharedResourceIdPatch : ResourcePatch() {
|
object SharedResourceIdPatch : ResourcePatch() {
|
||||||
|
internal var LabelAcknowledgements = -1L
|
||||||
internal var ScreenShotShareBanner = -1L
|
internal var ScreenShotShareBanner = -1L
|
||||||
|
internal var ToolBarNavSearchCtaContainer = -1L
|
||||||
|
|
||||||
override fun execute(context: ResourceContext) {
|
override fun execute(context: ResourceContext) {
|
||||||
|
|
||||||
@ -18,7 +21,9 @@ object SharedResourceIdPatch : ResourcePatch() {
|
|||||||
.find { it.type == resourceType.value && it.name == resourceName }?.id
|
.find { it.type == resourceType.value && it.name == resourceName }?.id
|
||||||
?: -1
|
?: -1
|
||||||
|
|
||||||
|
LabelAcknowledgements = find(STRING, "label_acknowledgements")
|
||||||
ScreenShotShareBanner = find(STRING, "screenshot_share_banner_title")
|
ScreenShotShareBanner = find(STRING, "screenshot_share_banner_title")
|
||||||
|
ToolBarNavSearchCtaContainer = find(ID, "toolbar_nav_search_cta_container")
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -6,13 +6,17 @@ import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
|
|||||||
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
|
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
|
||||||
import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
|
import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
|
||||||
import app.revanced.patcher.patch.BytecodePatch
|
import app.revanced.patcher.patch.BytecodePatch
|
||||||
|
import app.revanced.patcher.patch.annotation.Patch
|
||||||
import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod
|
import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod
|
||||||
|
import app.revanced.patches.reddit.utils.resourceid.SharedResourceIdPatch
|
||||||
|
import app.revanced.patches.reddit.utils.resourceid.SharedResourceIdPatch.LabelAcknowledgements
|
||||||
import app.revanced.patches.reddit.utils.settings.fingerprints.AcknowledgementsLabelBuilderFingerprint
|
import app.revanced.patches.reddit.utils.settings.fingerprints.AcknowledgementsLabelBuilderFingerprint
|
||||||
import app.revanced.patches.reddit.utils.settings.fingerprints.OssLicensesMenuActivityOnCreateFingerprint
|
import app.revanced.patches.reddit.utils.settings.fingerprints.OssLicensesMenuActivityOnCreateFingerprint
|
||||||
import app.revanced.patches.reddit.utils.settings.fingerprints.SettingsStatusLoadFingerprint
|
import app.revanced.patches.reddit.utils.settings.fingerprints.SettingsStatusLoadFingerprint
|
||||||
import app.revanced.util.bytecode.getStringIndex
|
import app.revanced.util.bytecode.getWideLiteralIndex
|
||||||
import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
||||||
|
|
||||||
|
@Patch(dependencies = [SharedResourceIdPatch::class])
|
||||||
object SettingsBytecodePatch : BytecodePatch(
|
object SettingsBytecodePatch : BytecodePatch(
|
||||||
setOf(
|
setOf(
|
||||||
AcknowledgementsLabelBuilderFingerprint,
|
AcknowledgementsLabelBuilderFingerprint,
|
||||||
@ -42,7 +46,7 @@ object SettingsBytecodePatch : BytecodePatch(
|
|||||||
AcknowledgementsLabelBuilderFingerprint.result?.let {
|
AcknowledgementsLabelBuilderFingerprint.result?.let {
|
||||||
it.mutableMethod.apply {
|
it.mutableMethod.apply {
|
||||||
val insertIndex =
|
val insertIndex =
|
||||||
getStringIndex("resources.getString(R.st\u2026g.label_acknowledgements)")
|
getWideLiteralIndex(LabelAcknowledgements) + 3
|
||||||
val insertRegister =
|
val insertRegister =
|
||||||
getInstruction<OneRegisterInstruction>(insertIndex - 1).registerA
|
getInstruction<OneRegisterInstruction>(insertIndex - 1).registerA
|
||||||
|
|
||||||
|
@ -11,7 +11,11 @@ import kotlin.io.path.exists
|
|||||||
@Patch(
|
@Patch(
|
||||||
name = "Settings",
|
name = "Settings",
|
||||||
description = "Adds ReVanced settings to Reddit.",
|
description = "Adds ReVanced settings to Reddit.",
|
||||||
dependencies = [IntegrationsPatch::class, SettingsBytecodePatch::class],
|
dependencies =
|
||||||
|
[
|
||||||
|
IntegrationsPatch::class,
|
||||||
|
SettingsBytecodePatch::class
|
||||||
|
],
|
||||||
compatiblePackages = [CompatiblePackage("com.reddit.frontpage")],
|
compatiblePackages = [CompatiblePackage("com.reddit.frontpage")],
|
||||||
requiresIntegrations = true,
|
requiresIntegrations = true,
|
||||||
)
|
)
|
||||||
|
@ -2,11 +2,16 @@ package app.revanced.patches.reddit.utils.settings.fingerprints
|
|||||||
|
|
||||||
import app.revanced.patcher.extensions.or
|
import app.revanced.patcher.extensions.or
|
||||||
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
||||||
|
import app.revanced.patches.reddit.utils.resourceid.SharedResourceIdPatch.LabelAcknowledgements
|
||||||
|
import app.revanced.util.bytecode.isWideLiteralExists
|
||||||
import com.android.tools.smali.dexlib2.AccessFlags
|
import com.android.tools.smali.dexlib2.AccessFlags
|
||||||
|
|
||||||
object AcknowledgementsLabelBuilderFingerprint : MethodFingerprint(
|
object AcknowledgementsLabelBuilderFingerprint : MethodFingerprint(
|
||||||
returnType = "Z",
|
returnType = "Z",
|
||||||
accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
|
accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
|
||||||
parameters = listOf("Landroidx/preference/Preference;"),
|
parameters = listOf("Landroidx/preference/Preference;"),
|
||||||
strings = listOf("resources.getString(R.st\u2026g.label_acknowledgements)")
|
customFingerprint = { methodDef, _ ->
|
||||||
|
methodDef.definingClass.startsWith("Lcom/reddit/screen/settings/preferences/")
|
||||||
|
&& methodDef.isWideLiteralExists(LabelAcknowledgements)
|
||||||
|
}
|
||||||
)
|
)
|
Loading…
x
Reference in New Issue
Block a user