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.Patch
|
||||
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.SettingsPatch
|
||||
import app.revanced.util.bytecode.getStringIndex
|
||||
import app.revanced.util.bytecode.getWideLiteralIndex
|
||||
import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
||||
|
||||
@Patch(
|
||||
name = "Hide place button",
|
||||
description = "Hide r/place button in toolbar.",
|
||||
dependencies = [SettingsPatch::class],
|
||||
dependencies =
|
||||
[
|
||||
SettingsPatch::class,
|
||||
SharedResourceIdPatch::class
|
||||
],
|
||||
compatiblePackages = [CompatiblePackage("com.reddit.frontpage")]
|
||||
)
|
||||
@Suppress("unused")
|
||||
@ -32,7 +38,7 @@ object PlaceButtonPatch : BytecodePatch(
|
||||
HomePagerScreenFingerprint.result?.let {
|
||||
it.mutableMethod.apply {
|
||||
val targetIndex =
|
||||
getStringIndex("view.findViewById(Search\u2026nav_search_cta_container)")
|
||||
getWideLiteralIndex(ToolBarNavSearchCtaContainer) + 3
|
||||
val targetRegister =
|
||||
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.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
|
||||
|
||||
object HomePagerScreenFingerprint : MethodFingerprint(
|
||||
returnType = "Landroid/view/View;",
|
||||
accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
|
||||
parameters = listOf("Landroid/view/LayoutInflater;", "Landroid/view/ViewGroup;"),
|
||||
strings = listOf("view.findViewById(Search\u2026nav_search_cta_container)"),
|
||||
customFingerprint = { methodDef, _ ->
|
||||
methodDef.definingClass.endsWith("/HomePagerScreen;")
|
||||
&& methodDef.isWideLiteralExists(ToolBarNavSearchCtaContainer)
|
||||
}
|
||||
)
|
@ -9,5 +9,8 @@ import com.android.tools.smali.dexlib2.AccessFlags
|
||||
object ScreenshotTakenBannerFingerprint : MethodFingerprint(
|
||||
returnType = "V",
|
||||
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(
|
||||
returnType = "Ljava/lang/String;",
|
||||
parameters = listOf("Ljava/lang/String;", "Ljava/util/Map;"),
|
||||
strings = listOf(
|
||||
"uri.getQueryParameters(name)",
|
||||
"uri.queryParameterNames",
|
||||
"newUriBuilder.build().toString()"
|
||||
),
|
||||
customFingerprint = { methodDef, classDef ->
|
||||
methodDef.definingClass.startsWith("Lcom/reddit/sharing/")
|
||||
&& classDef.sourceFile == "UrlUtil.kt"
|
||||
}
|
||||
)
|
@ -5,11 +5,14 @@ import app.revanced.patcher.patch.ResourcePatch
|
||||
import app.revanced.patcher.patch.annotation.Patch
|
||||
import app.revanced.patches.shared.patch.mapping.ResourceMappingPatch
|
||||
import app.revanced.util.enum.ResourceType
|
||||
import app.revanced.util.enum.ResourceType.ID
|
||||
import app.revanced.util.enum.ResourceType.STRING
|
||||
|
||||
@Patch(dependencies = [ResourceMappingPatch::class])
|
||||
object SharedResourceIdPatch : ResourcePatch() {
|
||||
internal var LabelAcknowledgements = -1L
|
||||
internal var ScreenShotShareBanner = -1L
|
||||
internal var ToolBarNavSearchCtaContainer = -1L
|
||||
|
||||
override fun execute(context: ResourceContext) {
|
||||
|
||||
@ -18,7 +21,9 @@ object SharedResourceIdPatch : ResourcePatch() {
|
||||
.find { it.type == resourceType.value && it.name == resourceName }?.id
|
||||
?: -1
|
||||
|
||||
LabelAcknowledgements = find(STRING, "label_acknowledgements")
|
||||
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.getInstruction
|
||||
import app.revanced.patcher.patch.BytecodePatch
|
||||
import app.revanced.patcher.patch.annotation.Patch
|
||||
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.OssLicensesMenuActivityOnCreateFingerprint
|
||||
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
|
||||
|
||||
@Patch(dependencies = [SharedResourceIdPatch::class])
|
||||
object SettingsBytecodePatch : BytecodePatch(
|
||||
setOf(
|
||||
AcknowledgementsLabelBuilderFingerprint,
|
||||
@ -42,7 +46,7 @@ object SettingsBytecodePatch : BytecodePatch(
|
||||
AcknowledgementsLabelBuilderFingerprint.result?.let {
|
||||
it.mutableMethod.apply {
|
||||
val insertIndex =
|
||||
getStringIndex("resources.getString(R.st\u2026g.label_acknowledgements)")
|
||||
getWideLiteralIndex(LabelAcknowledgements) + 3
|
||||
val insertRegister =
|
||||
getInstruction<OneRegisterInstruction>(insertIndex - 1).registerA
|
||||
|
||||
|
@ -11,7 +11,11 @@ import kotlin.io.path.exists
|
||||
@Patch(
|
||||
name = "Settings",
|
||||
description = "Adds ReVanced settings to Reddit.",
|
||||
dependencies = [IntegrationsPatch::class, SettingsBytecodePatch::class],
|
||||
dependencies =
|
||||
[
|
||||
IntegrationsPatch::class,
|
||||
SettingsBytecodePatch::class
|
||||
],
|
||||
compatiblePackages = [CompatiblePackage("com.reddit.frontpage")],
|
||||
requiresIntegrations = true,
|
||||
)
|
||||
|
@ -2,11 +2,16 @@ package app.revanced.patches.reddit.utils.settings.fingerprints
|
||||
|
||||
import app.revanced.patcher.extensions.or
|
||||
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
|
||||
|
||||
object AcknowledgementsLabelBuilderFingerprint : MethodFingerprint(
|
||||
returnType = "Z",
|
||||
accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
|
||||
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