feat: Publish as a library (#3356)

This commit is contained in:
oSumAtrIX
2023-12-02 22:35:13 +01:00
committed by GitHub
parent f909df8047
commit d3acdead51
500 changed files with 2369 additions and 719 deletions
@@ -1,6 +1,6 @@
package app.revanced.patches.reddit.ad.comments
import app.revanced.extensions.exception
import app.revanced.util.exception
import app.revanced.patcher.data.BytecodeContext
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.patch.BytecodePatch
@@ -2,7 +2,7 @@ package app.revanced.patches.reddit.ad.comments.fingerprints
import app.revanced.patcher.fingerprint.MethodFingerprint
object HideCommentAdsFingerprint : MethodFingerprint(
internal object HideCommentAdsFingerprint : MethodFingerprint(
strings = listOf(
"link",
// CommentPageRepository is not returning a link object
@@ -2,7 +2,7 @@ package app.revanced.patches.reddit.ad.general.fingerprints
import app.revanced.patcher.fingerprint.MethodFingerprint
object AdPostFingerprint : MethodFingerprint(
internal object AdPostFingerprint : MethodFingerprint(
"V",
// "children" are present throughout multiple versions
strings = listOf("children"),
@@ -3,7 +3,7 @@ package app.revanced.patches.reddit.ad.general.fingerprints
import app.revanced.patcher.fingerprint.MethodFingerprint
import com.android.tools.smali.dexlib2.Opcode
object NewAdPostFingerprint : MethodFingerprint(
internal object NewAdPostFingerprint : MethodFingerprint(
opcodes = listOf(Opcode.INVOKE_VIRTUAL),
strings = listOf("chain", "feedElement"),
customFingerprint = { _, classDef -> classDef.sourceFile == "AdElementConverter.kt" },
@@ -1,6 +1,6 @@
package app.revanced.patches.reddit.customclients
import app.revanced.extensions.exception
import app.revanced.util.exception
import app.revanced.patcher.PatchClass
import app.revanced.patcher.data.BytecodeContext
import app.revanced.patcher.fingerprint.MethodFingerprint
@@ -2,6 +2,6 @@ package app.revanced.patches.reddit.customclients.baconreader.api.fingerprints
import app.revanced.patcher.fingerprint.MethodFingerprint
object GetAuthorizationUrlFingerprint: MethodFingerprint(
internal object GetAuthorizationUrlFingerprint: MethodFingerprint(
strings = listOf("client_id=zACVn0dSFGdWqQ"),
)
@@ -2,7 +2,7 @@ package app.revanced.patches.reddit.customclients.baconreader.api.fingerprints
import app.revanced.patcher.fingerprint.MethodFingerprint
object GetClientIdFingerprint : MethodFingerprint(
internal object GetClientIdFingerprint : MethodFingerprint(
strings = listOf("client_id=zACVn0dSFGdWqQ"),
customFingerprint = custom@{ methodDef, classDef ->
if (!classDef.type.endsWith("RedditOAuth;")) return@custom false
@@ -2,6 +2,6 @@ package app.revanced.patches.reddit.customclients.baconreader.api.fingerprints
import app.revanced.patcher.fingerprint.MethodFingerprint
object RequestTokenFingerprint : MethodFingerprint(
internal object RequestTokenFingerprint : MethodFingerprint(
strings = listOf("zACVn0dSFGdWqQ", "kDm2tYpu9DqyWFFyPlNcXGEni4k"), // App ID and secret.
)
@@ -2,7 +2,7 @@ package app.revanced.patches.reddit.customclients.boostforreddit.api.fingerprint
import app.revanced.patcher.fingerprint.MethodFingerprint
object GetClientIdFingerprint : MethodFingerprint(
internal object GetClientIdFingerprint : MethodFingerprint(
customFingerprint = custom@{ methodDef, classDef ->
if (!classDef.type.endsWith("Credentials;")) return@custom false
@@ -3,7 +3,7 @@ package app.revanced.patches.reddit.customclients.boostforreddit.api.fingerprint
import app.revanced.patcher.fingerprint.MethodFingerprint
import com.android.tools.smali.dexlib2.Opcode
object LoginActivityOnCreateFingerprint : MethodFingerprint(
internal object LoginActivityOnCreateFingerprint : MethodFingerprint(
opcodes = listOf(
Opcode.MOVE_RESULT_OBJECT,
Opcode.CONST_4
@@ -2,6 +2,6 @@ package app.revanced.patches.reddit.customclients.infinityforreddit.api.fingerpr
import app.revanced.patcher.fingerprint.MethodFingerprint
object APIUtilsFingerprint : MethodFingerprint(
internal object APIUtilsFingerprint : MethodFingerprint(
strings = listOf("native-lib")
)
@@ -6,7 +6,7 @@ import app.revanced.patcher.patch.annotation.CompatiblePackage
import app.revanced.patcher.patch.annotation.Patch
import app.revanced.patches.reddit.customclients.infinityforreddit.api.SpoofClientPatch
import app.revanced.patches.reddit.customclients.infinityforreddit.subscription.fingerprints.StartSubscriptionActivityFingerprint
import app.revanced.util.Utils.returnEarly
import app.revanced.util.returnEarly
@Patch(
name = "Unlock subscription",
@@ -1,6 +1,6 @@
package app.revanced.patches.reddit.customclients.joeyforreddit.ads
import app.revanced.extensions.exception
import app.revanced.util.exception
import app.revanced.patcher.data.BytecodeContext
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.patch.BytecodePatch
@@ -3,7 +3,7 @@ package app.revanced.patches.reddit.customclients.joeyforreddit.ads.fingerprints
import app.revanced.patcher.fingerprint.MethodFingerprint
import com.android.tools.smali.dexlib2.AccessFlags
object IsAdFreeUserFingerprint : MethodFingerprint(
internal object IsAdFreeUserFingerprint : MethodFingerprint(
returnType = "Z",
accessFlags = AccessFlags.PUBLIC.value,
strings = listOf("AD_FREE_USER")
@@ -5,7 +5,7 @@ import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode
import app.revanced.patcher.fingerprint.MethodFingerprint
object GetClientIdFingerprint : MethodFingerprint(
internal object GetClientIdFingerprint : MethodFingerprint(
returnType = "L",
accessFlags = AccessFlags.PUBLIC or AccessFlags.STATIC,
opcodes = listOf(
@@ -1,6 +1,6 @@
package app.revanced.patches.reddit.customclients.joeyforreddit.detection.piracy
import app.revanced.extensions.exception
import app.revanced.util.exception
import app.revanced.patcher.data.BytecodeContext
import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
import app.revanced.patcher.patch.BytecodePatch
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode
object PiracyDetectionFingerprint : MethodFingerprint(
internal object PiracyDetectionFingerprint : MethodFingerprint(
returnType = "V",
accessFlags = AccessFlags.PRIVATE or AccessFlags.STATIC,
opcodes = listOf(
@@ -2,6 +2,6 @@ package app.revanced.patches.reddit.customclients.redditisfun.api.fingerprints
import app.revanced.patcher.fingerprint.MethodFingerprint
abstract class AbstractClientIdFingerprint(string: String) : MethodFingerprint(
internal abstract class AbstractClientIdFingerprint(string: String) : MethodFingerprint(
strings = listOfNotNull("yyOCBp.RHJhDKd", string),
)
@@ -1,5 +1,5 @@
package app.revanced.patches.reddit.customclients.redditisfun.api.fingerprints
object BasicAuthorizationFingerprint : AbstractClientIdFingerprint(
internal object BasicAuthorizationFingerprint : AbstractClientIdFingerprint(
string = "fJOxVwBUyo*=f:<OoejWs:AqmIJ", // Encrypted basic authorization string.
)
@@ -1,5 +1,5 @@
package app.revanced.patches.reddit.customclients.redditisfun.api.fingerprints
object BuildAuthorizationStringFingerprint : AbstractClientIdFingerprint(
internal object BuildAuthorizationStringFingerprint : AbstractClientIdFingerprint(
string = "client_id"
)
@@ -5,7 +5,7 @@ import app.revanced.patcher.fingerprint.MethodFingerprint
import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode
object GetUserAgentFingerprint : MethodFingerprint(
internal object GetUserAgentFingerprint : MethodFingerprint(
"Ljava/lang/String;",
AccessFlags.PUBLIC or AccessFlags.STATIC,
emptyList(),
@@ -2,6 +2,6 @@ package app.revanced.patches.reddit.customclients.relayforreddit.api.fingerprint
import app.revanced.patcher.fingerprint.MethodFingerprint
abstract class AbstractClientIdFingerprint(string: String) : MethodFingerprint(
internal abstract class AbstractClientIdFingerprint(string: String) : MethodFingerprint(
strings = listOfNotNull("dj-xCIZQYiLbEg", string),
)
@@ -1,3 +1,3 @@
package app.revanced.patches.reddit.customclients.relayforreddit.api.fingerprints
object GetLoggedInBearerTokenFingerprint : AbstractClientIdFingerprint("authorization_code")
internal object GetLoggedInBearerTokenFingerprint : AbstractClientIdFingerprint("authorization_code")
@@ -1,3 +1,3 @@
package app.revanced.patches.reddit.customclients.relayforreddit.api.fingerprints
object GetLoggedOutBearerTokenFingerprint : AbstractClientIdFingerprint("https://oauth.reddit.com/grants/installed_client")
internal object GetLoggedOutBearerTokenFingerprint : AbstractClientIdFingerprint("https://oauth.reddit.com/grants/installed_client")
@@ -1,3 +1,3 @@
package app.revanced.patches.reddit.customclients.relayforreddit.api.fingerprints
object GetRefreshTokenFingerprint : AbstractClientIdFingerprint("refresh_token")
internal object GetRefreshTokenFingerprint : AbstractClientIdFingerprint("refresh_token")
@@ -1,3 +1,3 @@
package app.revanced.patches.reddit.customclients.relayforreddit.api.fingerprints
object LoginActivityClientIdFingerprint : AbstractClientIdFingerprint("&duration=permanent")
internal object LoginActivityClientIdFingerprint : AbstractClientIdFingerprint("&duration=permanent")
@@ -3,7 +3,7 @@ package app.revanced.patches.reddit.customclients.relayforreddit.api.fingerprint
import app.revanced.patcher.fingerprint.MethodFingerprint
import com.android.tools.smali.dexlib2.Opcode
object RedditCheckDisableAPIFingerprint : MethodFingerprint(
internal object RedditCheckDisableAPIFingerprint : MethodFingerprint(
strings = listOf("Reddit Disabled"),
opcodes = listOf(Opcode.IF_EQZ)
)
@@ -2,7 +2,7 @@ package app.revanced.patches.reddit.customclients.relayforreddit.api.fingerprint
import app.revanced.patcher.fingerprint.MethodFingerprint
object SetRemoteConfigFingerprint : MethodFingerprint(
internal object SetRemoteConfigFingerprint : MethodFingerprint(
strings = listOf("reddit_oauth_url"),
parameters = listOf("Lcom/google/firebase/remoteconfig/FirebaseRemoteConfig;")
)
@@ -2,7 +2,7 @@ package app.revanced.patches.reddit.customclients.slide.api.fingerprints
import app.revanced.patcher.fingerprint.MethodFingerprint
object GetClientIdFingerprint : MethodFingerprint(
internal object GetClientIdFingerprint : MethodFingerprint(
customFingerprint = custom@{ methodDef, classDef ->
if (!classDef.type.endsWith("Credentials;")) return@custom false
@@ -1,6 +1,6 @@
package app.revanced.patches.reddit.customclients.syncforreddit.ads
import app.revanced.extensions.exception
import app.revanced.util.exception
import app.revanced.patcher.data.BytecodeContext
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.patch.BytecodePatch
@@ -4,7 +4,7 @@ import app.revanced.patcher.extensions.or
import app.revanced.patcher.fingerprint.MethodFingerprint
import com.android.tools.smali.dexlib2.AccessFlags
object IsAdsEnabledFingerprint : MethodFingerprint(
internal object IsAdsEnabledFingerprint : MethodFingerprint(
returnType = "Z",
accessFlags = AccessFlags.PUBLIC or AccessFlags.STATIC,
strings = listOf("SyncIapHelper")
@@ -1,12 +1,12 @@
package app.revanced.patches.reddit.customclients.syncforreddit.annoyances.startup
import app.revanced.extensions.exception
import app.revanced.util.exception
import app.revanced.patcher.data.BytecodeContext
import app.revanced.patcher.extensions.InstructionExtensions.removeInstruction
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.customclients.syncforreddit.annoyances.startup.fingerprints.MainActivityOnCreate
import app.revanced.patches.reddit.customclients.syncforreddit.annoyances.startup.fingerprints.MainActivityOnCreateFingerprint
@Patch(
@@ -19,12 +19,12 @@ import app.revanced.patches.reddit.customclients.syncforreddit.annoyances.startu
]
)
@Suppress("unused")
object DisableSyncForLemmyBottomSheetPatch : BytecodePatch(setOf(MainActivityOnCreate)) {
object DisableSyncForLemmyBottomSheetPatch : BytecodePatch(setOf(MainActivityOnCreateFingerprint)) {
override fun execute(context: BytecodeContext) {
MainActivityOnCreate.result?.mutableMethod?.apply {
MainActivityOnCreateFingerprint.result?.mutableMethod?.apply {
val showBottomSheetIndex = implementation!!.instructions.lastIndex - 1
removeInstruction(showBottomSheetIndex)
} ?: throw MainActivityOnCreate.exception
} ?: throw MainActivityOnCreateFingerprint.exception
}
}
@@ -2,7 +2,7 @@ package app.revanced.patches.reddit.customclients.syncforreddit.annoyances.start
import app.revanced.patcher.fingerprint.MethodFingerprint
object MainActivityOnCreate : MethodFingerprint(
internal object MainActivityOnCreateFingerprint : MethodFingerprint(
customFingerprint = custom@{ method, classDef ->
classDef.type.endsWith("MainActivity;") && method.name == "onCreate"
}
@@ -1,6 +1,6 @@
package app.revanced.patches.reddit.customclients.syncforreddit.api
import app.revanced.extensions.exception
import app.revanced.util.exception
import app.revanced.patcher.data.BytecodeContext
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
@@ -2,6 +2,6 @@ package app.revanced.patches.reddit.customclients.syncforreddit.api.fingerprints
import app.revanced.patcher.fingerprint.MethodFingerprint
object GetAuthorizationStringFingerprint : MethodFingerprint(
internal object GetAuthorizationStringFingerprint : MethodFingerprint(
strings = listOf("authorize.compact?client_id")
)
@@ -2,6 +2,6 @@ package app.revanced.patches.reddit.customclients.syncforreddit.api.fingerprints
import app.revanced.patcher.fingerprint.MethodFingerprint
object GetBearerTokenFingerprint : MethodFingerprint(
internal object GetBearerTokenFingerprint : MethodFingerprint(
strings = listOf("Basic")
)
@@ -2,7 +2,7 @@ package app.revanced.patches.reddit.customclients.syncforreddit.api.fingerprints
import app.revanced.patcher.fingerprint.MethodFingerprint
object ImgurImageAPIFingerprint : MethodFingerprint(
internal object ImgurImageAPIFingerprint : MethodFingerprint(
strings = listOf(
"https://imgur-apiv3.p.rapidapi.com/3/image",
)
@@ -3,7 +3,7 @@ package app.revanced.patches.reddit.customclients.syncforreddit.api.fingerprints
import app.revanced.patcher.fingerprint.MethodFingerprint
import com.android.tools.smali.dexlib2.Opcode
object LoadBrowserURLFingerprint : MethodFingerprint(
internal object LoadBrowserURLFingerprint : MethodFingerprint(
parameters = listOf("Landroid/view/View;", "Landroid/os/Bundle;"),
opcodes = listOf(Opcode.CONST_4),
strings = listOf("CustomInterface")
@@ -6,7 +6,7 @@ import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode
import com.android.tools.smali.dexlib2.iface.instruction.ReferenceInstruction
object PiracyDetectionFingerprint : MethodFingerprint(
internal object PiracyDetectionFingerprint : MethodFingerprint(
returnType = "V",
accessFlags = AccessFlags.PRIVATE or AccessFlags.FINAL,
opcodes = listOf(
@@ -1,6 +1,6 @@
package app.revanced.patches.reddit.layout.disablescreenshotpopup
import app.revanced.extensions.exception
import app.revanced.util.exception
import app.revanced.patcher.data.BytecodeContext
import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
import app.revanced.patcher.patch.BytecodePatch
@@ -2,7 +2,7 @@ package app.revanced.patches.reddit.layout.disablescreenshotpopup.fingerprints
import app.revanced.patcher.fingerprint.MethodFingerprint
object DisableScreenshotPopupFingerprint : MethodFingerprint(
internal object DisableScreenshotPopupFingerprint : MethodFingerprint(
"V",
parameters = listOf("Landroidx/compose/runtime/", "I"),
customFingerprint = custom@{ methodDef, classDef ->
@@ -1,6 +1,6 @@
package app.revanced.patches.reddit.layout.premiumicon
import app.revanced.extensions.exception
import app.revanced.util.exception
import app.revanced.patcher.data.BytecodeContext
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.patch.BytecodePatch
@@ -2,7 +2,7 @@ package app.revanced.patches.reddit.layout.premiumicon.fingerprints
import app.revanced.patcher.fingerprint.MethodFingerprint
object HasPremiumIconAccessFingerprint : MethodFingerprint(
internal object HasPremiumIconAccessFingerprint : MethodFingerprint(
"Z",
customFingerprint = { methodDef, _ ->
methodDef.definingClass.endsWith("MyAccount;") && methodDef.name == "isPremiumSubscriber"
@@ -1,6 +1,6 @@
package app.revanced.patches.reddit.misc.tracking.url
import app.revanced.extensions.exception
import app.revanced.util.exception
import app.revanced.patcher.data.BytecodeContext
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.patch.BytecodePatch
@@ -2,7 +2,7 @@ package app.revanced.patches.reddit.misc.tracking.url.fingerprints
import app.revanced.patcher.fingerprint.MethodFingerprint
object ShareLinkFormatterFingerprint : MethodFingerprint(
internal object ShareLinkFormatterFingerprint : MethodFingerprint(
customFingerprint = { methodDef, classDef ->
methodDef.definingClass.startsWith("Lcom/reddit/sharing/") && classDef.sourceFile == "UrlUtil.kt"
}