Compare commits
6 Commits
a4ccd7b804
...
9c6d0592b9
Author | SHA1 | Date |
---|---|---|
Romain | 9c6d0592b9 | |
FullerBread2032 | fb02b481e2 | |
semantic-release-bot | 2e41ce2157 | |
Bceez | 92fc8aaad8 | |
Starmania | 6ab589b342 | |
Starmania | e8f7333a34 |
|
@ -1,3 +1,10 @@
|
|||
# [4.8.0-dev.16](https://github.com/ReVanced/revanced-patches/compare/v4.8.0-dev.15...v4.8.0-dev.16) (2024-05-12)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **WarnWetter - Promo code unlock:** Constrain to last working version ([#3110](https://github.com/ReVanced/revanced-patches/issues/3110)) ([92fc8aa](https://github.com/ReVanced/revanced-patches/commit/92fc8aaad80f8fad35b75e6de032692986211536))
|
||||
|
||||
# [4.8.0-dev.15](https://github.com/ReVanced/revanced-patches/compare/v4.8.0-dev.14...v4.8.0-dev.15) (2024-05-11)
|
||||
|
||||
|
||||
|
|
|
@ -487,6 +487,12 @@ public final class app/revanced/patches/photomath/misc/unlock/plus/UnlockPlusPat
|
|||
public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
|
||||
}
|
||||
|
||||
public final class app/revanced/patches/piccomafr/tracking/DisableTrackingPatch : app/revanced/patcher/patch/BytecodePatch {
|
||||
public static final field INSTANCE Lapp/revanced/patches/piccomafr/tracking/DisableTrackingPatch;
|
||||
public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
|
||||
public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
|
||||
}
|
||||
|
||||
public final class app/revanced/patches/pixiv/ads/HideAdsPatch : app/revanced/patcher/patch/BytecodePatch {
|
||||
public static final field INSTANCE Lapp/revanced/patches/pixiv/ads/HideAdsPatch;
|
||||
public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
org.gradle.parallel = true
|
||||
org.gradle.caching = true
|
||||
kotlin.code.style = official
|
||||
version = 4.8.0-dev.15
|
||||
version = 4.8.0-dev.16
|
||||
|
|
|
@ -14,7 +14,7 @@ import kotlin.random.Random
|
|||
name = "Spoof device ID",
|
||||
description = "Spoofs device ID to mitigate manual bans by developers.",
|
||||
dependencies = [SignatureDetectionPatch::class],
|
||||
compatiblePackages = [CompatiblePackage("com.microblink.photomath", ["8.32.0"])]
|
||||
compatiblePackages = [CompatiblePackage("com.microblink.photomath", ["8.37.0"])]
|
||||
)
|
||||
@Suppress("unused")
|
||||
object SpoofDeviceIdPatch : BytecodePatch(
|
||||
|
|
|
@ -1,9 +1,21 @@
|
|||
package app.revanced.patches.photomath.detection.deviceid.fingerprints
|
||||
|
||||
import app.revanced.patcher.fingerprint.MethodFingerprint
|
||||
import com.android.tools.smali.dexlib2.Opcode
|
||||
|
||||
internal object GetDeviceIdFingerprint : MethodFingerprint(
|
||||
returnType = "Ljava/lang/String;",
|
||||
strings = listOf("androidId", "android_id"),
|
||||
opcodes = listOf(
|
||||
Opcode.SGET_OBJECT,
|
||||
Opcode.IGET_OBJECT,
|
||||
Opcode.INVOKE_STATIC,
|
||||
Opcode.MOVE_RESULT_OBJECT,
|
||||
Opcode.IF_NEZ,
|
||||
Opcode.INVOKE_STATIC,
|
||||
Opcode.MOVE_RESULT_OBJECT,
|
||||
Opcode.INVOKE_VIRTUAL,
|
||||
Opcode.MOVE_RESULT_OBJECT,
|
||||
Opcode.INVOKE_VIRTUAL,
|
||||
),
|
||||
parameters = listOf()
|
||||
)
|
|
@ -5,11 +5,9 @@ import com.android.tools.smali.dexlib2.Opcode
|
|||
|
||||
internal object CheckSignatureFingerprint : MethodFingerprint(
|
||||
strings = listOf(
|
||||
"packageInfo.signatures",
|
||||
"currentSignature"
|
||||
"signatures",
|
||||
),
|
||||
opcodes = listOf(
|
||||
Opcode.CONST_STRING,
|
||||
Opcode.CONST_STRING,
|
||||
Opcode.INVOKE_STATIC,
|
||||
Opcode.INVOKE_STATIC,
|
||||
|
|
|
@ -13,7 +13,7 @@ import app.revanced.util.exception
|
|||
name = "Hide update popup",
|
||||
description = "Prevents the update popup from showing up.",
|
||||
dependencies = [SignatureDetectionPatch::class],
|
||||
compatiblePackages = [CompatiblePackage("com.microblink.photomath", ["8.32.0"])]
|
||||
compatiblePackages = [CompatiblePackage("com.microblink.photomath", ["8.37.0"])]
|
||||
)
|
||||
@Suppress("unused")
|
||||
object HideUpdatePopupPatch : BytecodePatch(
|
||||
|
|
|
@ -13,7 +13,7 @@ import app.revanced.patches.photomath.misc.unlock.plus.fingerprints.IsPlusUnlock
|
|||
@Patch(
|
||||
name = "Unlock plus",
|
||||
dependencies = [SignatureDetectionPatch::class, EnableBookpointPatch::class],
|
||||
compatiblePackages = [CompatiblePackage("com.microblink.photomath", ["8.32.0"])]
|
||||
compatiblePackages = [CompatiblePackage("com.microblink.photomath", ["8.37.0"])]
|
||||
)
|
||||
@Suppress("unused")
|
||||
object UnlockPlusPatch : BytecodePatch(
|
||||
|
|
|
@ -0,0 +1,85 @@
|
|||
package app.revanced.patches.piccomafr.tracking
|
||||
|
||||
import app.revanced.patcher.data.BytecodeContext
|
||||
import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
|
||||
import app.revanced.patcher.extensions.InstructionExtensions.getInstructions
|
||||
import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction
|
||||
import app.revanced.patcher.patch.BytecodePatch
|
||||
import app.revanced.patcher.patch.annotation.CompatiblePackage
|
||||
import app.revanced.patcher.patch.annotation.Patch
|
||||
import app.revanced.patches.piccomafr.tracking.fingerprints.FacebookSDKFingerprint
|
||||
import app.revanced.patches.piccomafr.tracking.fingerprints.FirebaseInstallFingerprint
|
||||
import app.revanced.patches.piccomafr.tracking.fingerprints.AppMesurementFingerprint
|
||||
import app.revanced.util.exception
|
||||
import com.android.tools.smali.dexlib2.Opcode
|
||||
import com.android.tools.smali.dexlib2.builder.instruction.BuilderInstruction21c
|
||||
import com.android.tools.smali.dexlib2.iface.instruction.formats.Instruction21c
|
||||
import com.android.tools.smali.dexlib2.iface.reference.StringReference
|
||||
import com.android.tools.smali.dexlib2.immutable.reference.ImmutableStringReference
|
||||
import java.util.logging.Logger
|
||||
|
||||
|
||||
|
||||
@Patch(
|
||||
name = "Disable tracking",
|
||||
description = "Enable every debug possibilities of the app.",
|
||||
compatiblePackages = [CompatiblePackage(
|
||||
"com.piccomaeurope.fr",
|
||||
[
|
||||
"6.4.0", "6.4.1", "6.4.2", "6.4.3", "6.4.4", "6.4.5",
|
||||
"6.5.0", "6.5.1", "6.5.2", "6.5.3", "6.5.4",
|
||||
"6.6.0", "6.6.1", "6.6.2"
|
||||
],
|
||||
)]
|
||||
)
|
||||
@Suppress("unused")
|
||||
object DisableTrackingPatch : BytecodePatch(
|
||||
setOf(FacebookSDKFingerprint, FirebaseInstallFingerprint, AppMesurementFingerprint),
|
||||
) {
|
||||
private val logger = Logger.getLogger(DisableTrackingPatch::class.java.name)
|
||||
|
||||
override fun execute(context: BytecodeContext) {
|
||||
val fbSDK = FacebookSDKFingerprint.result?.mutableMethod
|
||||
?: throw FacebookSDKFingerprint.exception
|
||||
|
||||
fbSDK.getInstructions().withIndex()
|
||||
.filter { (_, instruction) -> instruction.opcode == Opcode.CONST_STRING }
|
||||
.forEach { (index, instruction) ->
|
||||
instruction as Instruction21c
|
||||
fbSDK.replaceInstruction(
|
||||
index,
|
||||
BuilderInstruction21c(
|
||||
Opcode.CONST_STRING,
|
||||
instruction.registerA,
|
||||
ImmutableStringReference("example.com"),
|
||||
),
|
||||
)
|
||||
}
|
||||
|
||||
// =====
|
||||
|
||||
val firebaseInit = FirebaseInstallFingerprint.result?.mutableMethod
|
||||
?: throw FirebaseInstallFingerprint.exception
|
||||
|
||||
firebaseInit.getInstructions().withIndex()
|
||||
.filter { (_, instruction) -> instruction.opcode == Opcode.CONST_STRING }
|
||||
.filter { (_, instruction) -> ((instruction as? Instruction21c)?.reference as? StringReference)?.string == "firebaseinstallations.googleapis.com" }
|
||||
.forEach { (index, instruction) ->
|
||||
instruction as Instruction21c
|
||||
firebaseInit.replaceInstruction(
|
||||
index,
|
||||
BuilderInstruction21c(
|
||||
Opcode.CONST_STRING,
|
||||
instruction.registerA,
|
||||
ImmutableStringReference("example.com"),
|
||||
),
|
||||
)
|
||||
}
|
||||
|
||||
// =====
|
||||
|
||||
AppMesurementFingerprint.result?.mutableMethod?.addInstruction(
|
||||
0, "return-void"
|
||||
) ?: throw AppMesurementFingerprint.exception
|
||||
}
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
package app.revanced.patches.piccomafr.tracking.fingerprints
|
||||
|
||||
import app.revanced.patcher.extensions.or
|
||||
import app.revanced.patcher.fingerprint.MethodFingerprint
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
|
||||
|
||||
internal object AppMesurementFingerprint : MethodFingerprint(
|
||||
accessFlags = AccessFlags.PRIVATE or AccessFlags.FINAL,
|
||||
strings = listOf(
|
||||
"config/app/",
|
||||
"Fetching remote configuration"
|
||||
),
|
||||
returnType = "V"
|
||||
)
|
|
@ -0,0 +1,15 @@
|
|||
package app.revanced.patches.piccomafr.tracking.fingerprints
|
||||
|
||||
import app.revanced.patcher.extensions.or
|
||||
import app.revanced.patcher.fingerprint.MethodFingerprint
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
|
||||
|
||||
internal object FacebookSDKFingerprint : MethodFingerprint(
|
||||
accessFlags = AccessFlags.STATIC or AccessFlags.CONSTRUCTOR,
|
||||
strings = listOf(
|
||||
"instagram.com",
|
||||
"facebook.com"
|
||||
),
|
||||
returnType = "V"
|
||||
)
|
|
@ -0,0 +1,13 @@
|
|||
package app.revanced.patches.piccomafr.tracking.fingerprints
|
||||
|
||||
import app.revanced.patcher.fingerprint.MethodFingerprint
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
|
||||
|
||||
internal object FirebaseInstallFingerprint : MethodFingerprint(
|
||||
accessFlags = AccessFlags.PRIVATE.value,
|
||||
strings = listOf(
|
||||
"https://%s/%s/%s",
|
||||
"firebaseinstallations.googleapis.com"
|
||||
)
|
||||
)
|
|
@ -12,7 +12,7 @@ import app.revanced.patches.warnwetter.misc.promocode.fingerprints.PromoCodeUnlo
|
|||
name = "Promo code unlock",
|
||||
description = "Disables the validation of promo code. Any code will work to unlock all features.",
|
||||
dependencies = [FirebaseGetCertPatch::class],
|
||||
compatiblePackages = [CompatiblePackage("de.dwd.warnapp")]
|
||||
compatiblePackages = [CompatiblePackage("de.dwd.warnapp", ["4.2.2"])]
|
||||
)
|
||||
@Suppress("unused")
|
||||
object PromoCodeUnlockPatch : BytecodePatch(
|
||||
|
@ -28,4 +28,4 @@ object PromoCodeUnlockPatch : BytecodePatch(
|
|||
"""
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue