mirror of
https://github.com/ReVanced/revanced-patches.git
synced 2026-01-26 12:11:02 +00:00
add missing ObjectPropertyName supression
This commit is contained in:
@@ -4,7 +4,7 @@ import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
import app.revanced.patcher.patch.longOption
|
||||
import app.revanced.patcher.patch.stringOption
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Spoof build info` by creatingBytecodePatch(
|
||||
description = "Spoofs the information about the current build.",
|
||||
use = false,
|
||||
@@ -103,8 +103,8 @@ val `Spoof build info` by creatingBytecodePatch(
|
||||
default = null,
|
||||
name = "Radio",
|
||||
description = "This field was deprecated in API level 15. " +
|
||||
"The radio firmware version is frequently not available when this class is initialized, " +
|
||||
"leading to a blank or \"unknown\" value for this string. Use getRadioVersion() instead.",
|
||||
"The radio firmware version is frequently not available when this class is initialized, " +
|
||||
"leading to a blank or \"unknown\" value for this string. Use getRadioVersion() instead.",
|
||||
)
|
||||
|
||||
val serial by stringOption(
|
||||
@@ -183,6 +183,6 @@ val `Spoof build info` by creatingBytecodePatch(
|
||||
type,
|
||||
user,
|
||||
)
|
||||
}
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
@file:Suppress("unused")
|
||||
|
||||
package app.revanced.patches.all.misc.connectivity.location.hide
|
||||
|
||||
import app.revanced.patcher.extensions.replaceInstruction
|
||||
|
||||
@@ -14,7 +14,7 @@ import com.android.tools.smali.dexlib2.mutable.MutableMethod
|
||||
import com.android.tools.smali.dexlib2.util.MethodUtil
|
||||
import java.util.*
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Spoof SIM provider` by creatingBytecodePatch(
|
||||
description = "Spoofs information about the SIM card provider.",
|
||||
use = false,
|
||||
@@ -39,7 +39,7 @@ val `Spoof SIM provider` by creatingBytecodePatch(
|
||||
val networkOperator by intOption(
|
||||
name = "MCC+MNC network operator code",
|
||||
description = "The 5 or 6 digits MCC+MNC (Mobile Country Code + Mobile Network Code) of the network operator.",
|
||||
validator = { isMccMncValid(it) }
|
||||
validator = { isMccMncValid(it) },
|
||||
)
|
||||
|
||||
val networkOperatorName by stringOption(
|
||||
@@ -52,7 +52,7 @@ val `Spoof SIM provider` by creatingBytecodePatch(
|
||||
val simOperator by intOption(
|
||||
name = "MCC+MNC SIM operator code",
|
||||
description = "The 5 or 6 digits MCC+MNC (Mobile Country Code + Mobile Network Code) of the SIM operator.",
|
||||
validator = { isMccMncValid(it) }
|
||||
validator = { isMccMncValid(it) },
|
||||
)
|
||||
|
||||
val simOperatorName by stringOption(
|
||||
|
||||
@@ -10,7 +10,7 @@ private const val EXTENSION_CLASS_DESCRIPTOR_PREFIX =
|
||||
|
||||
private const val EXTENSION_CLASS_DESCRIPTOR = "$EXTENSION_CLASS_DESCRIPTOR_PREFIX;"
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Spoof Wi-Fi connection` by creatingBytecodePatch(
|
||||
description = "Spoofs an existing Wi-Fi connection.",
|
||||
use = false,
|
||||
|
||||
@@ -3,7 +3,7 @@ package app.revanced.patches.all.misc.debugging
|
||||
import app.revanced.patcher.patch.creatingResourcePatch
|
||||
import org.w3c.dom.Element
|
||||
|
||||
@Suppress("ObjectPropertyName", "unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Enable Android debugging` by creatingResourcePatch(
|
||||
description = "Enables Android debugging capabilities. This can slow down the app.",
|
||||
use = false,
|
||||
|
||||
@@ -5,10 +5,10 @@ import app.revanced.patcher.patch.creatingResourcePatch
|
||||
import app.revanced.util.asSequence
|
||||
import app.revanced.util.getNode
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Export internal data documents provider` = creatingResourcePatch(
|
||||
description = "Exports a documents provider that grants access to the internal data directory of this app " +
|
||||
"to file managers and other apps that support the Storage Access Framework.",
|
||||
"to file managers and other apps that support the Storage Access Framework.",
|
||||
use = false,
|
||||
) {
|
||||
dependsOn(
|
||||
|
||||
@@ -15,11 +15,10 @@ private val CONTEXT_BIND_SERVICE_METHOD_REFERENCE = ImmutableMethodReference(
|
||||
"Landroid/content/Context;",
|
||||
"bindService",
|
||||
listOf("Landroid/content/Intent;", "Landroid/content/ServiceConnection;", "I"),
|
||||
"Z"
|
||||
"Z",
|
||||
)
|
||||
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Disable Play Integrity` by creatingBytecodePatch(
|
||||
description = "Prevents apps from using Play Integrity by pretending it is not available.",
|
||||
use = false,
|
||||
@@ -46,9 +45,9 @@ val `Disable Play Integrity` by creatingBytecodePatch(
|
||||
|
||||
method.replaceInstruction(
|
||||
index,
|
||||
"invoke-static { $registerString }, $EXTENSION_CLASS_DESCRIPTOR->bindService(Landroid/content/Context;$parameterString)Z"
|
||||
"invoke-static { $registerString }, $EXTENSION_CLASS_DESCRIPTOR->bindService(Landroid/content/Context;$parameterString)Z",
|
||||
)
|
||||
}
|
||||
)
|
||||
},
|
||||
),
|
||||
)
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ import org.w3c.dom.Element
|
||||
import java.io.FileNotFoundException
|
||||
import java.util.logging.Logger
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Remove share targets` = creatingResourcePatch(
|
||||
description = "Removes share targets like directly sharing to a frequent contact.",
|
||||
use = false,
|
||||
@@ -17,7 +17,7 @@ val `Remove share targets` = creatingResourcePatch(
|
||||
document("res/xml/shortcuts.xml")
|
||||
} catch (_: FileNotFoundException) {
|
||||
return@apply Logger.getLogger(this::class.java.name).warning(
|
||||
"The app has no shortcuts. No changes applied."
|
||||
"The app has no shortcuts. No changes applied.",
|
||||
)
|
||||
}.use { document ->
|
||||
val rootNode = document.getNode("shortcuts") as? Element ?: return@use
|
||||
|
||||
@@ -5,10 +5,10 @@ import app.revanced.util.getNode
|
||||
import org.w3c.dom.Element
|
||||
import java.util.logging.Logger
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Set target SDK version 34` = creatingResourcePatch(
|
||||
description = "Changes the target SDK to version 34 (Android 14). " +
|
||||
"For devices running Android 15+, this will disable edge-to-edge display.",
|
||||
"For devices running Android 15+, this will disable edge-to-edge display.",
|
||||
use = false,
|
||||
) {
|
||||
apply {
|
||||
@@ -23,12 +23,12 @@ val `Set target SDK version 34` = creatingResourcePatch(
|
||||
try {
|
||||
val manifestElement = document.getNode("manifest") as Element
|
||||
val compileSdkVersion = Integer.parseInt(
|
||||
manifestElement.getAttribute("android:compileSdkVersion")
|
||||
manifestElement.getAttribute("android:compileSdkVersion"),
|
||||
)
|
||||
if (compileSdkVersion <= targetSdkOverride) {
|
||||
getLogger().warning(
|
||||
"This app does not appear to use a target SDK above $targetSdkOverride: " +
|
||||
"(compileSdkVersion: $compileSdkVersion)"
|
||||
"(compileSdkVersion: $compileSdkVersion)",
|
||||
)
|
||||
}
|
||||
} catch (_: Exception) {
|
||||
|
||||
@@ -5,10 +5,10 @@ import app.revanced.patcher.patch.intOption
|
||||
import app.revanced.util.getNode
|
||||
import org.w3c.dom.Element
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Change version code` = creatingResourcePatch(
|
||||
description = "Changes the version code of the app. This will turn off app store updates " +
|
||||
"and allows downgrading an existing app install to an older app version.",
|
||||
"and allows downgrading an existing app install to an older app version.",
|
||||
use = false,
|
||||
) {
|
||||
val versionCode by intOption(
|
||||
@@ -19,7 +19,7 @@ val `Change version code` = creatingResourcePatch(
|
||||
),
|
||||
name = "Version code",
|
||||
description = "The version code to use. Using the highest value turns off app store " +
|
||||
"updates and allows downgrading an existing app install to an older app version.",
|
||||
"updates and allows downgrading an existing app install to an older app version.",
|
||||
required = true,
|
||||
) { versionCode -> versionCode!! >= 1 }
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ package app.revanced.patches.amazon
|
||||
import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
import app.revanced.util.returnEarly
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Always allow deep-linking` by creatingBytecodePatch(
|
||||
description = "Open Amazon links, even if the app is not set to handle Amazon links.",
|
||||
) {
|
||||
|
||||
@@ -4,7 +4,7 @@ import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
import app.revanced.patches.shared.misc.pairip.license.`Disable Pairip license check`
|
||||
import app.revanced.util.returnEarly
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Hide ads` by creatingBytecodePatch {
|
||||
compatibleWith("com.drinkplusplus.angulus")
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ package app.revanced.patches.bandcamp.limitations
|
||||
import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
import app.revanced.util.returnEarly
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Remove play limits` by creatingBytecodePatch(
|
||||
description = "Disables purchase nagging and playback limits of not purchased tracks.",
|
||||
) {
|
||||
|
||||
@@ -3,7 +3,7 @@ package app.revanced.patches.cieid.restrictions.root
|
||||
import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
import app.revanced.util.returnEarly
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Bypass root checks` by creatingBytecodePatch(
|
||||
description = "Removes the restriction to use the app with root permissions or on a custom ROM.",
|
||||
) {
|
||||
|
||||
@@ -5,7 +5,7 @@ import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
import app.revanced.patches.shared.misc.pairip.license.`Disable Pairip license check`
|
||||
import app.revanced.util.returnEarly
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Remove ads` by creatingBytecodePatch(
|
||||
description = "Removes pre-roll, pause and on-demand advertisements from SBS On Demand TV.",
|
||||
) {
|
||||
@@ -30,7 +30,7 @@ val `Remove ads` by creatingBytecodePatch(
|
||||
const-string v1, "Ad stream disabled"
|
||||
invoke-direct {v0, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
|
||||
throw v0
|
||||
"""
|
||||
""",
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ import com.android.tools.smali.dexlib2.iface.reference.FieldReference
|
||||
private const val EXTENSION_CLASS_DESCRIPTOR =
|
||||
"Lapp/revanced/extension/cricbuzz/ads/HideAdsPatch;"
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Hide ads` by creatingBytecodePatch {
|
||||
compatibleWith("com.cricbuzz.android"("6.24.01"))
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ package app.revanced.patches.disneyplus
|
||||
import app.revanced.patcher.extensions.addInstructions
|
||||
import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Skip ads` by creatingBytecodePatch(
|
||||
description = "Automatically skips ads.",
|
||||
) {
|
||||
|
||||
@@ -6,7 +6,7 @@ import app.revanced.patcher.extensions.getInstruction
|
||||
import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Disable ads` by creatingBytecodePatch {
|
||||
// 6.55.3 and higher can show ads after each exercise.
|
||||
compatibleWith("com.duolingo"("6.54.5"))
|
||||
|
||||
@@ -7,7 +7,7 @@ import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
import app.revanced.util.returnEarly
|
||||
import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Enable debug menu` by creatingBytecodePatch(
|
||||
use = false,
|
||||
) {
|
||||
|
||||
@@ -4,7 +4,7 @@ import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
import app.revanced.util.returnEarly
|
||||
import com.android.tools.smali.dexlib2.mutable.MutableMethod
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Hide story ads` by creatingBytecodePatch(
|
||||
description = "Hides the ads in the Facebook app stories.",
|
||||
) {
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package app.revanced.patches.finanzonline.detection.bootloader
|
||||
|
||||
import app.revanced.util.returnEarly
|
||||
import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
import app.revanced.util.returnEarly
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Remove bootloader detection` by creatingBytecodePatch(
|
||||
description = "Removes the check for an unlocked bootloader.",
|
||||
) {
|
||||
|
||||
@@ -5,7 +5,7 @@ import app.revanced.patcher.extensions.replaceInstruction
|
||||
import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Enable CustomTabs` by creatingBytecodePatch(
|
||||
description = "Enables CustomTabs to open articles in your default browser.",
|
||||
) {
|
||||
|
||||
@@ -3,10 +3,10 @@ package app.revanced.patches.googlephotos.misc.backup
|
||||
import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
import app.revanced.util.returnEarly
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Enable DCIM folders backup control` by creatingBytecodePatch(
|
||||
description = "Disables always on backup for the Camera and other DCIM folders, allowing you to control backup " +
|
||||
"for each folder individually. This will make the app default to having no folders backed up.",
|
||||
"for each folder individually. This will make the app default to having no folders backed up.",
|
||||
use = false,
|
||||
) {
|
||||
compatibleWith("com.google.android.apps.photos")
|
||||
|
||||
@@ -9,7 +9,7 @@ import com.android.tools.smali.dexlib2.Opcode
|
||||
import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
||||
import com.android.tools.smali.dexlib2.iface.reference.StringReference
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Spoof features` by creatingBytecodePatch(
|
||||
description = "Spoofs the device to enable Google Pixel exclusive features, including unlimited storage.",
|
||||
) {
|
||||
@@ -48,7 +48,7 @@ val `Spoof features` by creatingBytecodePatch(
|
||||
),
|
||||
name = "Features to disable",
|
||||
description = "Google Pixel exclusive features to disable." +
|
||||
"Features after Pixel XL may have to be disabled for unlimited storage depending on the device.",
|
||||
"Features after Pixel XL may have to be disabled for unlimited storage depending on the device.",
|
||||
required = true,
|
||||
)
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package app.revanced.patches.hexeditor.ad
|
||||
|
||||
import app.revanced.util.returnEarly
|
||||
import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
import app.revanced.util.returnEarly
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Disable ads` by creatingBytecodePatch {
|
||||
compatibleWith("com.myprog.hexedit")
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ package app.revanced.patches.iconpackstudio.misc.pro
|
||||
import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
import app.revanced.util.returnEarly
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Unlock pro` by creatingBytecodePatch {
|
||||
compatibleWith("ginlemon.iconpackstudio"("2.2 build 016"))
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import app.revanced.patcher.extensions.addInstructions
|
||||
import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
import app.revanced.util.returnEarly
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Remove device integrity checks` by creatingBytecodePatch(
|
||||
description = "Removes the check for root permissions and unlocked bootloader.",
|
||||
) {
|
||||
|
||||
@@ -3,7 +3,7 @@ package app.revanced.patches.idaustria.detection.signature
|
||||
import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
import app.revanced.util.returnEarly
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Spoof signature` by creatingBytecodePatch(
|
||||
description = "Spoofs the signature of the app.",
|
||||
) {
|
||||
@@ -12,16 +12,16 @@ val `Spoof signature` by creatingBytecodePatch(
|
||||
apply {
|
||||
val expectedSignature =
|
||||
"OpenSSLRSAPublicKey{modulus=ac3e6fd6050aa7e0d6010ae58190404cd89a56935b44f6fee" +
|
||||
"067c149768320026e10b24799a1339e414605e448e3f264444a327b9ae292be2b62ad567dd1800dbed4a88f718a33dc6db6b" +
|
||||
"f5178aa41aa0efff8a3409f5ca95dbfccd92c7b4298966df806ea7a0204a00f0e745f6d9f13bdf24f3df715d7b62c1600906" +
|
||||
"15de1c8a956b9286764985a3b3c060963c435fb9481a5543aaf0671fc2dba6c5c2b17d1ef1d85137f14dc9bbdf3490288087" +
|
||||
"324cd48341cce64fabf6a9b55d1a7bf23b2fcdff451fd85bf0c7feb0a5e884d7c5c078e413149566a12a686e6efa70ae5161" +
|
||||
"a0201307692834cda336c55157fef125e67c01c1359886f94742105596b42a790404bbcda5dad6a65f115aaff5e45ef3c28b" +
|
||||
"2316ff6cef07aa49a45aa58c07bf258051b13ef449ccb37a3679afd5cfb9132f70bb9d931a937897544f90c3bcc80ed012e9" +
|
||||
"f6ba020b8cdc23f8c29ac092b88f0e370ff9434e4f0f359e614ae0868dc526fa41e4b7596533e8d10279b66e923ecd9f0b20" +
|
||||
"0def55be2c1f6f9c72c92fb45d7e0a9ac571cb38f0a9a37bb33ea06f223fde8c7a92e8c47769e386f9799776e8f110c21df2" +
|
||||
"77ef1be61b2c01ebdabddcbf53cc4b6fd9a3c445606ee77b3758162c80ad8f8137b3c6864e92db904807dcb2be9d7717dd21" +
|
||||
"bf42c121d620ddfb7914f7a95c713d9e1c1b7bdb4a03d618e40cf7e9e235c0b5687e03b7ab3,publicExponent=10001}"
|
||||
"067c149768320026e10b24799a1339e414605e448e3f264444a327b9ae292be2b62ad567dd1800dbed4a88f718a33dc6db6b" +
|
||||
"f5178aa41aa0efff8a3409f5ca95dbfccd92c7b4298966df806ea7a0204a00f0e745f6d9f13bdf24f3df715d7b62c1600906" +
|
||||
"15de1c8a956b9286764985a3b3c060963c435fb9481a5543aaf0671fc2dba6c5c2b17d1ef1d85137f14dc9bbdf3490288087" +
|
||||
"324cd48341cce64fabf6a9b55d1a7bf23b2fcdff451fd85bf0c7feb0a5e884d7c5c078e413149566a12a686e6efa70ae5161" +
|
||||
"a0201307692834cda336c55157fef125e67c01c1359886f94742105596b42a790404bbcda5dad6a65f115aaff5e45ef3c28b" +
|
||||
"2316ff6cef07aa49a45aa58c07bf258051b13ef449ccb37a3679afd5cfb9132f70bb9d931a937897544f90c3bcc80ed012e9" +
|
||||
"f6ba020b8cdc23f8c29ac092b88f0e370ff9434e4f0f359e614ae0868dc526fa41e4b7596533e8d10279b66e923ecd9f0b20" +
|
||||
"0def55be2c1f6f9c72c92fb45d7e0a9ac571cb38f0a9a37bb33ea06f223fde8c7a92e8c47769e386f9799776e8f110c21df2" +
|
||||
"77ef1be61b2c01ebdabddcbf53cc4b6fd9a3c445606ee77b3758162c80ad8f8137b3c6864e92db904807dcb2be9d7717dd21" +
|
||||
"bf42c121d620ddfb7914f7a95c713d9e1c1b7bdb4a03d618e40cf7e9e235c0b5687e03b7ab3,publicExponent=10001}"
|
||||
|
||||
spoofSignatureMethod.returnEarly(expectedSignature)
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package app.revanced.patches.inshorts.ad
|
||||
|
||||
import app.revanced.util.returnEarly
|
||||
import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
import app.revanced.util.returnEarly
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Hide ads` by creatingBytecodePatch {
|
||||
compatibleWith("com.nis.app")
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
import app.revanced.patches.meta.ads.adInjectorMethod
|
||||
import app.revanced.util.returnEarly
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Hide ads` by creatingBytecodePatch {
|
||||
compatibleWith("com.instagram.android")
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ import com.android.tools.smali.dexlib2.iface.reference.FieldReference
|
||||
|
||||
internal const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/instagram/feed/LimitFeedToFollowedProfiles;"
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Limit feed to followed profiles` by creatingBytecodePatch(
|
||||
description = "Filters the home feed to display only content from profiles you follow.",
|
||||
use = false,
|
||||
|
||||
@@ -4,14 +4,14 @@ import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
import app.revanced.util.Utils.trimIndentMultiline
|
||||
import app.revanced.util.returnEarly
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Anonymous story viewing` by creatingBytecodePatch(
|
||||
description = """
|
||||
View stories without sending any information to the server.
|
||||
Your view will not appear in the story viewers list.
|
||||
Note: Since no data is sent, a story you have already viewed may appear as new on another device.
|
||||
""".trimIndentMultiline(),
|
||||
use = false
|
||||
use = false,
|
||||
) {
|
||||
compatibleWith("com.instagram.android")
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ import app.revanced.util.returnEarly
|
||||
import com.android.tools.smali.dexlib2.Opcode
|
||||
import com.android.tools.smali.dexlib2.iface.reference.MethodReference
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Enable developer menu` by creatingBytecodePatch(
|
||||
description = """
|
||||
Enables the developer menu, which can be found at the bottom of settings menu with name 'Internal Settings'.
|
||||
|
||||
@@ -1,14 +1,13 @@
|
||||
package app.revanced.patches.instagram.misc.links
|
||||
|
||||
import app.revanced.patcher.gettingFirstMutableMethodDeclaratively
|
||||
import app.revanced.patcher.patch.BytecodePatchContext
|
||||
import app.revanced.patcher.firstMethodComposite
|
||||
import app.revanced.patcher.instructions
|
||||
import app.revanced.patcher.invoke
|
||||
import app.revanced.patcher.returnType
|
||||
|
||||
internal const val TARGET_STRING = "Tracking.ARG_CLICK_SOURCE"
|
||||
|
||||
internal val BytecodePatchContext.inAppBrowserFunctionMethod by gettingFirstMutableMethodDeclaratively(
|
||||
"TrackingInfo.ARG_MODULE_NAME",
|
||||
TARGET_STRING
|
||||
) {
|
||||
internal val inAppBrowserFunctionMethodMatch = firstMethodComposite {
|
||||
instructions("TrackingInfo.ARG_MODULE_NAME"(), TARGET_STRING())
|
||||
returnType("Z")
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction
|
||||
|
||||
private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/instagram/misc/links/OpenLinksExternallyPatch;"
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Open links externally` by creatingBytecodePatch(
|
||||
description = "Changes links to always open in your external browser, instead of the in-app browser.",
|
||||
use = false,
|
||||
@@ -21,12 +21,13 @@ val `Open links externally` by creatingBytecodePatch(
|
||||
compatibleWith("com.instagram.android")
|
||||
|
||||
apply {
|
||||
inAppBrowserFunctionFingerprint.let {
|
||||
inAppBrowserFunctionMethodMatch.let {
|
||||
val stringMatchIndex = it.stringMatches?.first { match -> match.string == TARGET_STRING }!!.index
|
||||
|
||||
it.method.apply {
|
||||
val urlResultObjIndex = indexOfFirstInstructionOrThrow(
|
||||
stringMatchIndex, Opcode.MOVE_OBJECT_FROM16
|
||||
stringMatchIndex,
|
||||
Opcode.MOVE_OBJECT_FROM16,
|
||||
)
|
||||
|
||||
// Register that contains the url after moving from a higher register.
|
||||
@@ -38,7 +39,7 @@ val `Open links externally` by creatingBytecodePatch(
|
||||
invoke-static { v$urlRegister }, $EXTENSION_CLASS_DESCRIPTOR->openExternally(Ljava/lang/String;)Z
|
||||
move-result v$urlRegister
|
||||
return v$urlRegister
|
||||
"""
|
||||
""",
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ import app.revanced.util.returnEarly
|
||||
internal const val EXTENSION_CLASS_DESCRIPTOR =
|
||||
"Lapp/revanced/extension/instagram/misc/share/domain/ChangeLinkSharingDomainPatch;"
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Change link sharing domain` by creatingBytecodePatch(
|
||||
description = "Replaces the domain name of shared links.",
|
||||
use = false,
|
||||
|
||||
@@ -3,7 +3,7 @@ package app.revanced.patches.instagram.misc.signature
|
||||
import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
import app.revanced.util.returnEarly
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Disable signature check` by creatingBytecodePatch(
|
||||
description = "Disables the signature check that can cause the app to crash on startup. " +
|
||||
"Using this patch may cause issues with sharing or opening external Instagram links.",
|
||||
|
||||
@@ -5,11 +5,11 @@ import app.revanced.patcher.extensions.addInstructions
|
||||
import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
import app.revanced.util.returnEarly
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Disable Reels scrolling` by creatingBytecodePatch(
|
||||
description = "Disables the endless scrolling behavior in Instagram Reels, preventing swiping to the next Reel. " +
|
||||
"Note: On a clean install, the 'Tip' animation may appear but will stop on its own after a few seconds.",
|
||||
use = true
|
||||
"Note: On a clean install, the 'Tip' animation may appear but will stop on its own after a few seconds.",
|
||||
use = true,
|
||||
) {
|
||||
compatibleWith("com.instagram.android")
|
||||
|
||||
@@ -25,10 +25,10 @@ val `Disable Reels scrolling` by creatingBytecodePatch(
|
||||
iget-object v0, p0, $viewPagerField
|
||||
const/4 v1, 0x0
|
||||
invoke-virtual { v0, v1 }, Landroidx/viewpager2/widget/ViewPager2;->setUserInputEnabled(Z)V
|
||||
"""
|
||||
""",
|
||||
)
|
||||
|
||||
// Return false in onInterceptTouchEvent to disable pull-to-refresh.
|
||||
clipsSwipeRefreshLayoutOnInterceptTouchEventMethod.returnEarly(false)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,10 +3,10 @@ package app.revanced.patches.instagram.story.flipping
|
||||
import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
import app.revanced.util.returnEarly
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Disable story auto flipping` by creatingBytecodePatch(
|
||||
description = "Disable stories automatically flipping/skipping after some seconds.",
|
||||
use = false
|
||||
use = false,
|
||||
) {
|
||||
compatibleWith("com.instagram.android")
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ package app.revanced.patches.irplus.ad
|
||||
import app.revanced.patcher.extensions.addInstruction
|
||||
import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Remove ads` by creatingBytecodePatch {
|
||||
compatibleWith("net.binarymode.android.irplus")
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import app.revanced.patcher.extensions.addInstruction
|
||||
import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
import app.revanced.util.returnEarly
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Hide ads` by creatingBytecodePatch {
|
||||
compatibleWith("com.letterboxd.letterboxd")
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ package app.revanced.patches.letterboxd.unlock.unlockAppIcons
|
||||
import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
import app.revanced.util.returnEarly
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Unlock app icons` by creatingBytecodePatch {
|
||||
compatibleWith("com.letterboxd.letterboxd")
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import app.revanced.patcher.extensions.instructions
|
||||
import app.revanced.patcher.extensions.replaceInstruction
|
||||
import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Disable mandatory login` by creatingBytecodePatch {
|
||||
compatibleWith("com.adobe.lrmobile"("9.3.0"))
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ package app.revanced.patches.lightroom.misc.premium
|
||||
import app.revanced.patcher.extensions.replaceInstruction
|
||||
import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Unlock Premium` by creatingBytecodePatch {
|
||||
compatibleWith("com.adobe.lrmobile"("9.3.0"))
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
import app.revanced.patches.memegenerator.detection.license.licenseValidationPatch
|
||||
import app.revanced.patches.memegenerator.detection.signature.signatureVerificationPatch
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Unlock pro` by creatingBytecodePatch {
|
||||
dependsOn(signatureVerificationPatch, licenseValidationPatch)
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ package app.revanced.patches.messenger.inbox
|
||||
import app.revanced.patcher.extensions.replaceInstruction
|
||||
import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Hide inbox ads` by creatingBytecodePatch(
|
||||
description = "Hides ads in inbox.",
|
||||
) {
|
||||
|
||||
@@ -3,7 +3,7 @@ package app.revanced.patches.messenger.inbox
|
||||
import app.revanced.patcher.extensions.replaceInstruction
|
||||
import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Hide inbox subtabs` by creatingBytecodePatch(
|
||||
description = "Hides Home and Channels tabs between active now tray and chats.",
|
||||
) {
|
||||
|
||||
@@ -3,9 +3,9 @@ package app.revanced.patches.messenger.layout
|
||||
import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
import app.revanced.util.returnEarly
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Hide Facebook button` by creatingBytecodePatch(
|
||||
description = "Hides the Facebook button in the top toolbar."
|
||||
description = "Hides the Facebook button in the top toolbar.",
|
||||
) {
|
||||
compatibleWith("com.facebook.orca")
|
||||
|
||||
|
||||
@@ -12,9 +12,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.WideLiteralInstruction
|
||||
internal const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/messenger/metaai/RemoveMetaAIPatch;"
|
||||
internal const val EXTENSION_METHOD_NAME = "overrideBooleanFlag"
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Remove Meta AI` by creatingBytecodePatch(
|
||||
description = "Removes UI elements related to Meta AI."
|
||||
description = "Removes UI elements related to Meta AI.",
|
||||
) {
|
||||
compatibleWith("com.facebook.orca")
|
||||
|
||||
@@ -30,7 +30,7 @@ val `Remove Meta AI` by creatingBytecodePatch(
|
||||
"""
|
||||
invoke-static { p1, p2, v$returnRegister }, $EXTENSION_CLASS_DESCRIPTOR->$EXTENSION_METHOD_NAME(JZ)Z
|
||||
move-result v$returnRegister
|
||||
"""
|
||||
""",
|
||||
)
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@ val `Remove Meta AI` by creatingBytecodePatch(
|
||||
stringM.first().index, // TODO
|
||||
"""
|
||||
const-string v1, "$relevantDigits"
|
||||
"""
|
||||
""",
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@ import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
import app.revanced.patches.mifitness.misc.login.`Fix login`
|
||||
import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Force English locale` by creatingBytecodePatch(
|
||||
description = "Forces wearable devices to use the English locale.",
|
||||
) {
|
||||
|
||||
@@ -11,7 +11,7 @@ import app.revanced.patches.shared.misc.settings.preference.SwitchPreference
|
||||
|
||||
private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/music/patches/HideVideoAdsPatch;"
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Hide music video ads` by creatingBytecodePatch(
|
||||
description = "Adds an option to hide ads that appear while listening to or streaming music videos, podcasts, or songs.",
|
||||
) {
|
||||
|
||||
@@ -5,7 +5,7 @@ import app.revanced.patches.music.misc.extension.sharedExtensionPatch
|
||||
import app.revanced.patches.music.misc.settings.settingsPatch
|
||||
import app.revanced.util.returnEarly
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Enable exclusive audio playback` by creatingBytecodePatch(
|
||||
description = "Enables the option to play audio without video.",
|
||||
) {
|
||||
|
||||
@@ -14,7 +14,7 @@ import app.revanced.util.findFreeRegister
|
||||
|
||||
private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/music/patches/PermanentRepeatPatch;"
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Permanent repeat` by creatingBytecodePatch(
|
||||
description = "Adds an option to always repeat even if the playlist ends or another track is played.",
|
||||
) {
|
||||
|
||||
@@ -31,7 +31,7 @@ internal var topBarMenuItemImageView = -1L
|
||||
|
||||
private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/music/patches/HideButtonsPatch;"
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Hide buttons` by creatingBytecodePatch(
|
||||
description = "Adds options to hide the cast, history, notification, and search buttons.",
|
||||
) {
|
||||
|
||||
@@ -17,7 +17,7 @@ internal var chipCloud = -1L
|
||||
|
||||
private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/music/patches/HideCategoryBarPatch;"
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Hide category bar` by creatingBytecodePatch(
|
||||
description = "Adds an option to hide the category bar at the top of the homepage.",
|
||||
) {
|
||||
|
||||
@@ -20,7 +20,7 @@ import com.android.tools.smali.dexlib2.iface.reference.MethodReference
|
||||
|
||||
private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/music/patches/ChangeMiniplayerColorPatch;"
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Change miniplayer color` by creatingBytecodePatch(
|
||||
description = "Adds an option to change the miniplayer background color to match the fullscreen player.",
|
||||
) {
|
||||
|
||||
@@ -26,7 +26,7 @@ internal var text1 = -1L
|
||||
|
||||
private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/music/patches/NavigationBarPatch;"
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Navigation bar` by creatingBytecodePatch(
|
||||
description = "Adds options to hide navigation bar, labels and buttons.",
|
||||
) {
|
||||
|
||||
@@ -15,7 +15,7 @@ import com.android.tools.smali.dexlib2.iface.instruction.FiveRegisterInstruction
|
||||
|
||||
private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/music/patches/HideGetPremiumPatch;"
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Hide 'Get Music Premium'` by creatingBytecodePatch(
|
||||
description = "Adds an option to hide the \"Get Music Premium\" label in the settings and account menu.",
|
||||
) {
|
||||
|
||||
@@ -5,20 +5,20 @@ import app.revanced.patches.music.misc.extension.sharedExtensionPatch
|
||||
import app.revanced.patches.music.misc.settings.settingsPatch
|
||||
import app.revanced.util.returnEarly
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Bypass certificate checks` by creatingBytecodePatch(
|
||||
description = "Bypasses certificate checks which prevent YouTube Music from working on Android Auto.",
|
||||
) {
|
||||
dependsOn(
|
||||
sharedExtensionPatch,
|
||||
settingsPatch
|
||||
settingsPatch,
|
||||
)
|
||||
|
||||
compatibleWith(
|
||||
"com.google.android.apps.youtube.music"(
|
||||
"7.29.52",
|
||||
"8.10.52"
|
||||
)
|
||||
"8.10.52",
|
||||
),
|
||||
)
|
||||
|
||||
apply {
|
||||
|
||||
@@ -5,7 +5,7 @@ import app.revanced.patches.photomath.detection.signature.signatureDetectionPatc
|
||||
import app.revanced.util.returnEarly
|
||||
import kotlin.random.Random
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Spoof device ID` by creatingBytecodePatch(
|
||||
description = "Spoofs device ID to mitigate manual bans by developers.",
|
||||
) {
|
||||
|
||||
@@ -4,8 +4,7 @@ import app.revanced.patcher.extensions.addInstructions
|
||||
import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
import app.revanced.patches.photomath.detection.signature.signatureDetectionPatch
|
||||
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Hide update popup` by creatingBytecodePatch(
|
||||
description = "Prevents the update popup from showing up.",
|
||||
) {
|
||||
|
||||
@@ -4,10 +4,10 @@ import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
import app.revanced.patcher.patch.stringOption
|
||||
import app.revanced.util.returnEarly
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Spoof Android device ID` by creatingBytecodePatch(
|
||||
description = "Spoofs the Android device ID used by the app for account authentication." +
|
||||
"This can be used to copy the account to another device.",
|
||||
"This can be used to copy the account to another device.",
|
||||
use = false,
|
||||
) {
|
||||
compatibleWith(
|
||||
|
||||
@@ -9,7 +9,7 @@ import app.revanced.util.indexOfFirstInstructionOrThrow
|
||||
import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
||||
import com.android.tools.smali.dexlib2.iface.reference.MethodReference
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Unlock split tunneling` by creatingBytecodePatch {
|
||||
compatibleWith("ch.protonvpn.android")
|
||||
|
||||
|
||||
@@ -6,12 +6,12 @@ import app.revanced.patcher.extensions.stringReference
|
||||
import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Use /user/ endpoint` by creatingBytecodePatch(
|
||||
description = "Replaces the deprecated endpoint for viewing user profiles /u with /user, that used to fix a bug.",
|
||||
use = false,
|
||||
|
||||
) {
|
||||
) {
|
||||
compatibleWith(
|
||||
"com.laurencedawson.reddit_sync",
|
||||
"com.laurencedawson.reddit_sync.pro",
|
||||
@@ -25,7 +25,7 @@ val `Use /user/ endpoint` by creatingBytecodePatch(
|
||||
oAuthSubredditInfoRequestHelperMethodMatch,
|
||||
oAuthUnfriendRequestMethodMatch,
|
||||
oAuthUserIdRequestMethodMatch,
|
||||
oAuthUserInfoRequestMethodMatch
|
||||
oAuthUserInfoRequestMethodMatch,
|
||||
).map { match ->
|
||||
match.stringIndices.values.first() to match.method
|
||||
}.forEach { (userPathStringIndex, method) ->
|
||||
|
||||
@@ -10,7 +10,7 @@ private const val EXTENSION_CLASS_DESCRIPTOR =
|
||||
"Lapp/revanced/extension/syncforreddit/FixRedditVideoDownloadPatch;"
|
||||
private const val GET_LINKS_METHOD = "getLinks([B)[Ljava/lang/String;"
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Fix video downloads` by creatingBytecodePatch(
|
||||
description = "Fixes a bug in Sync's MPD parser resulting in only the audio-track being saved.",
|
||||
) {
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
@file:Suppress("unused")
|
||||
|
||||
package app.revanced.patches.samsung.radio.misc.fix.crash
|
||||
|
||||
@@ -13,8 +12,9 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
||||
|
||||
private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/samsung/radio/misc/fix/crash/FixCrashPatch;"
|
||||
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Fix crashes` by creatingBytecodePatch(
|
||||
description = "Prevents the app from crashing because of missing system permissions."
|
||||
description = "Prevents the app from crashing because of missing system permissions.",
|
||||
) {
|
||||
dependsOn(addManifestPermissionsPatch, `Bypass device checks`)
|
||||
extendWith("extensions/samsung/radio.rve")
|
||||
@@ -31,12 +31,13 @@ val `Fix crashes` by creatingBytecodePatch(
|
||||
|
||||
// Invoke the method from the extension
|
||||
addInstructions(
|
||||
moveResultIndex + 1, """
|
||||
moveResultIndex + 1,
|
||||
"""
|
||||
invoke-static { v$arrayRegister }, ${EXTENSION_CLASS_DESCRIPTOR}->fixPermissionRequestList([Ljava/lang/String;)[Ljava/lang/String;
|
||||
move-result-object v$arrayRegister
|
||||
"""
|
||||
""",
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ import app.revanced.patcher.*
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
import com.android.tools.smali.dexlib2.Opcode
|
||||
|
||||
internal val canScrollVerticallyMatch = firstMethodComposite {
|
||||
internal val canScrollVerticallyMethodMatch = firstMethodComposite {
|
||||
definingClass("SwipeRefreshLayout;"::endsWith)
|
||||
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
|
||||
returnType("Z")
|
||||
|
||||
@@ -10,7 +10,7 @@ val verticalScrollPatch = bytecodePatch(
|
||||
) {
|
||||
|
||||
apply {
|
||||
canScrollVerticallyMethod.let {
|
||||
canScrollVerticallyMethodMatch.let {
|
||||
it.method.apply {
|
||||
val moveResultIndex = it.indices.last()
|
||||
val moveResultRegister = getInstruction<OneRegisterInstruction>(moveResultIndex).registerA
|
||||
|
||||
@@ -5,7 +5,7 @@ import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
import app.revanced.util.returnEarly
|
||||
import java.util.logging.Logger
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Disable Pairip license check` by creatingBytecodePatch(
|
||||
description = "Disables Play Integrity API (Pairip) client-side license check.",
|
||||
use = false,
|
||||
|
||||
@@ -5,7 +5,7 @@ import app.revanced.util.asSequence
|
||||
import app.revanced.util.getNode
|
||||
import org.w3c.dom.Element
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Disable Sentry telemetry` = creatingResourcePatch(
|
||||
description = "Disables Sentry telemetry. See https://sentry.io/for/android/ for more information.",
|
||||
use = false,
|
||||
@@ -19,10 +19,12 @@ val `Disable Sentry telemetry` = creatingResourcePatch(
|
||||
if (targetChild != null) {
|
||||
targetChild.setAttribute("android:value", attributeValue)
|
||||
} else {
|
||||
appendChild(ownerDocument.createElement(tagName).apply {
|
||||
setAttribute("android:name", attributeName)
|
||||
setAttribute("android:value", attributeValue)
|
||||
})
|
||||
appendChild(
|
||||
ownerDocument.createElement(tagName).apply {
|
||||
setAttribute("android:name", attributeName)
|
||||
setAttribute("android:value", attributeValue)
|
||||
},
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ import app.revanced.patcher.extensions.replaceInstruction
|
||||
import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
import com.android.tools.smali.dexlib2.iface.instruction.ThreeRegisterInstruction
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Remove file size limit` by creatingBytecodePatch(
|
||||
description = "Allows opening files larger than 2 MB in the text editor.",
|
||||
) {
|
||||
|
||||
@@ -6,7 +6,7 @@ import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
|
||||
internal const val ACTIVITY_TAB_DESCRIPTOR = "Ljp/co/sony/vim/framework/ui/yourheadphones/YhContract\$Tab;"
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Remove badge tab` by creatingBytecodePatch(
|
||||
description = "Removes the badge tab from the activity tab.",
|
||||
) {
|
||||
|
||||
@@ -3,7 +3,7 @@ package app.revanced.patches.songpal.badge
|
||||
import app.revanced.patcher.extensions.addInstructions
|
||||
import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Remove notification badge` by creatingBytecodePatch(
|
||||
description = "Removes the red notification badge from the activity tab.",
|
||||
) {
|
||||
|
||||
@@ -4,7 +4,7 @@ import app.revanced.patcher.extensions.*
|
||||
import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
import app.revanced.patches.soundcloud.shared.featureConstructorMethod
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Hide ads` by creatingBytecodePatch {
|
||||
compatibleWith("com.soundcloud.android"("2025.05.27-release"))
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ package app.revanced.patches.soundcloud.analytics
|
||||
import app.revanced.patcher.extensions.addInstruction
|
||||
import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Disable telemetry` by creatingBytecodePatch(
|
||||
description = "Disables SoundCloud's telemetry system.",
|
||||
) {
|
||||
|
||||
@@ -8,7 +8,7 @@ import com.android.tools.smali.dexlib2.Opcode
|
||||
import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
||||
import com.android.tools.smali.dexlib2.iface.reference.FieldReference
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Enable offline sync` by creatingBytecodePatch {
|
||||
compatibleWith("com.soundcloud.android"("2025.05.27-release"))
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ package app.revanced.patches.spotify.misc.fix.login
|
||||
import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
import app.revanced.util.returnEarly
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Fix Facebook login` by creatingBytecodePatch(
|
||||
description =
|
||||
"Fix logging in with Facebook when the app is patched by always opening the login in a web browser window.",
|
||||
|
||||
@@ -20,7 +20,7 @@ import java.net.URISyntaxException
|
||||
import java.net.UnknownHostException
|
||||
import java.util.logging.Logger
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Change lyrics provider` by creatingBytecodePatch(
|
||||
description = "Changes the lyrics provider to a custom one.",
|
||||
use = false,
|
||||
|
||||
@@ -3,7 +3,7 @@ package app.revanced.patches.spotify.misc.widgets
|
||||
import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
import app.revanced.util.returnEarly
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Fix third party launchers widgets` by creatingBytecodePatch(
|
||||
description = "Fixes Spotify widgets not working in third party launchers, like Nova Launcher.",
|
||||
) {
|
||||
|
||||
@@ -4,7 +4,7 @@ import app.revanced.patcher.patch.creatingResourcePatch
|
||||
import app.revanced.util.childElementsSequence
|
||||
import app.revanced.util.getNode
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Hide offers tab` by creatingResourcePatch {
|
||||
compatibleWith("de.stocard.stocard")
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ package app.revanced.patches.stocard.layout
|
||||
import app.revanced.patcher.patch.creatingResourcePatch
|
||||
import app.revanced.util.getNode
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Hide story bubbles` by creatingResourcePatch {
|
||||
compatibleWith("de.stocard.stocard")
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ import app.revanced.patcher.patch.intOption
|
||||
import app.revanced.patcher.patch.longOption
|
||||
import app.revanced.util.returnEarly
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Overwrite media upload parameters` by creatingBytecodePatch(
|
||||
description = "Overwrites the compression, resize and trim media (images and videos) parameters returned by Strava's server before upload.",
|
||||
) {
|
||||
|
||||
@@ -3,7 +3,7 @@ package app.revanced.patches.strava.password
|
||||
import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
import app.revanced.util.returnEarly
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Enable password login` by creatingBytecodePatch(
|
||||
description = "Re-enables password login after having used an OTP code.",
|
||||
) {
|
||||
|
||||
@@ -3,7 +3,7 @@ package app.revanced.patches.strava.privacy
|
||||
import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
import app.revanced.util.returnEarly
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Block Snowplow tracking` by creatingBytecodePatch(
|
||||
description = "Blocks Snowplow analytics. See https://snowplow.io for more information.",
|
||||
) {
|
||||
|
||||
@@ -3,7 +3,7 @@ package app.revanced.patches.strava.quickedit
|
||||
import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
import app.revanced.util.returnEarly
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Disable Quick Edit` by creatingBytecodePatch(
|
||||
description = "Prevents the Quick Edit prompt from popping up.",
|
||||
) {
|
||||
|
||||
@@ -3,7 +3,7 @@ package app.revanced.patches.strava.subscription
|
||||
import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
import app.revanced.util.returnEarly
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Unlock subscription features` by creatingBytecodePatch(
|
||||
description = "Unlocks \"Routes\", \"Matched Runs\" and \"Segment Efforts\".",
|
||||
) {
|
||||
|
||||
@@ -8,7 +8,7 @@ import com.android.tools.smali.dexlib2.builder.MutableMethodImplementation
|
||||
import com.android.tools.smali.dexlib2.immutable.ImmutableMethod
|
||||
import com.android.tools.smali.dexlib2.mutable.MutableMethod.Companion.toMutable
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Disable subscription suggestions` by creatingBytecodePatch {
|
||||
compatibleWith("com.strava")
|
||||
|
||||
|
||||
@@ -5,14 +5,14 @@ import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
|
||||
private const val RESULT_METHOD_REFERENCE =
|
||||
" Lcom/swisssign/deviceintegrity/DeviceintegrityPlugin\$onMethodCall\$1;->" +
|
||||
"\$result:Lio/flutter/plugin/common/MethodChannel\$Result;"
|
||||
"\$result:Lio/flutter/plugin/common/MethodChannel\$Result;"
|
||||
private const val SUCCESS_METHOD_REFERENCE =
|
||||
"Lio/flutter/plugin/common/MethodChannel\$Result;->success(Ljava/lang/Object;)V"
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Remove Google Play Integrity check` by creatingBytecodePatch(
|
||||
description = "Removes the Google Play Integrity check. With this it's possible to use SwissID on custom ROMS." +
|
||||
"If the device is rooted, root permissions must be hidden from the app.",
|
||||
"If the device is rooted, root permissions must be hidden from the app.",
|
||||
) {
|
||||
compatibleWith("com.swisssign.swissid.mobile"("5.2.9"))
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
import app.revanced.patches.meta.ads.adInjectorMethod
|
||||
import app.revanced.util.returnEarly
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Hide ads` by creatingBytecodePatch {
|
||||
compatibleWith("com.instagram.barcelona"("382.0.0.51.85"))
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import app.revanced.patcher.extensions.addInstructions
|
||||
import app.revanced.patcher.extensions.removeInstructions
|
||||
import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Unlock themes` by creatingBytecodePatch(
|
||||
description = "Unlocks all themes that are inaccessible until a certain level is reached.",
|
||||
) {
|
||||
|
||||
@@ -11,7 +11,7 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
||||
|
||||
private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/tiktok/feedfilter/FeedItemsFilter;"
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Feed filter` by creatingBytecodePatch(
|
||||
description = "Removes ads, livestreams, stories, image videos " +
|
||||
"and videos with a specific amount of views or likes from the feed.",
|
||||
|
||||
@@ -10,7 +10,7 @@ import app.revanced.util.indexOfFirstInstructionOrThrow
|
||||
import com.android.tools.smali.dexlib2.Opcode
|
||||
import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Remember clear display` by creatingBytecodePatch(
|
||||
description = "Remembers the clear display configurations in between videos.",
|
||||
) {
|
||||
|
||||
@@ -4,7 +4,7 @@ import app.revanced.patcher.extensions.addInstructions
|
||||
import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
import app.revanced.util.returnEarly
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Show seekbar` by creatingBytecodePatch(
|
||||
description = "Shows progress bar for all video.",
|
||||
) {
|
||||
|
||||
@@ -13,7 +13,7 @@ import app.revanced.util.returnEarly
|
||||
import com.android.tools.smali.dexlib2.iface.instruction.formats.Instruction11x
|
||||
import com.android.tools.smali.dexlib2.iface.reference.MethodReference
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Playback speed` by creatingBytecodePatch(
|
||||
description = "Enables the playback speed option for all videos and " +
|
||||
"retains the speed configurations in between videos.",
|
||||
|
||||
@@ -3,7 +3,7 @@ package app.revanced.patches.tiktok.misc.login.disablerequirement
|
||||
import app.revanced.patcher.extensions.addInstructions
|
||||
import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Disable login requirement` by creatingBytecodePatch {
|
||||
compatibleWith(
|
||||
"com.ss.android.ugc.trill",
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
package app.revanced.patches.tiktok.misc.login.fixgoogle
|
||||
|
||||
import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
import app.revanced.util.returnEarly
|
||||
import com.android.tools.smali.dexlib2.mutable.MutableMethod
|
||||
import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Fix Google login` by creatingBytecodePatch(
|
||||
description = "Allows logging in with a Google account.",
|
||||
) {
|
||||
|
||||
@@ -13,7 +13,7 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
||||
import com.android.tools.smali.dexlib2.iface.instruction.formats.Instruction35c
|
||||
import com.android.tools.smali.dexlib2.iface.reference.MethodReference
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `SIM spoof` by creatingBytecodePatch(
|
||||
description = "Spoofs the information which is retrieved from the SIM card.",
|
||||
use = false,
|
||||
|
||||
@@ -4,7 +4,7 @@ import app.revanced.patcher.extensions.addInstructions
|
||||
import app.revanced.patcher.immutableClassDef
|
||||
import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Unlock pro` by creatingBytecodePatch {
|
||||
compatibleWith("tv.trakt.trakt"("1.1.1"))
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ import com.android.tools.smali.dexlib2.iface.reference.MethodReference
|
||||
private const val EXTENSION_CLASS_DESCRIPTOR =
|
||||
"Lapp/revanced/extension/tudortmund/lockscreen/ShowOnLockscreenPatch;"
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Show on lockscreen` by creatingBytecodePatch(
|
||||
description = "Shows student id and student ticket on lockscreen.",
|
||||
) {
|
||||
|
||||
@@ -4,7 +4,7 @@ import app.revanced.patcher.patch.creatingBytecodePatch
|
||||
import app.revanced.patches.tumblr.timelinefilter.addTimelineObjectTypeFilter
|
||||
import app.revanced.patches.tumblr.timelinefilter.filterTimelineObjectsPatch
|
||||
|
||||
@Suppress("unused")
|
||||
@Suppress("unused", "ObjectPropertyName")
|
||||
val `Disable dashboard ads` by creatingBytecodePatch(
|
||||
description = "Disables ads in the dashboard.",
|
||||
) {
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user