Compare commits

...

6 Commits

Author SHA1 Message Date
Romain
01830c7832
Merge 0e1f20865d into fb02b481e2 2024-05-13 01:45:17 +02:00
FullerBread2032
fb02b481e2
feat(Photomath): Support version 8.37.0 (#3109) 2024-05-13 01:45:13 +02:00
semantic-release-bot
2e41ce2157 chore(release): 4.8.0-dev.16 [skip ci]
# [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](92fc8aaad8))
2024-05-12 23:42:52 +00:00
Bceez
92fc8aaad8
feat(WarnWetter - Promo code unlock): Constrain to last working version (#3110) 2024-05-13 01:40:52 +02:00
Starmania
0e1f20865d Dumped the API 2024-05-10 14:55:34 +02:00
Starmania
2ac6696f28 feat(piccomafr): Add Spoof Device patch (#2624) 2024-05-09 15:36:18 +02:00
11 changed files with 105 additions and 10 deletions

View File

@ -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)

View File

@ -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/misc/SpoofDevicePatch : app/revanced/patcher/patch/BytecodePatch {
public static final field INSTANCE Lapp/revanced/patches/piccomafr/misc/SpoofDevicePatch;
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

View File

@ -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

View File

@ -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(

View File

@ -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()
)

View File

@ -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,

View File

@ -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(

View File

@ -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(

View File

@ -0,0 +1,56 @@
package app.revanced.patches.piccomafr.misc
import app.revanced.patcher.data.BytecodeContext
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.patch.BytecodePatch
import app.revanced.patcher.patch.annotation.CompatiblePackage
import app.revanced.patcher.patch.annotation.Patch
import app.revanced.patcher.patch.options.PatchOption.PatchExtensions.stringPatchOption
import app.revanced.patches.piccomafr.misc.fingerprints.GetAndroidIDFingerprint
import app.revanced.util.exception
private val HEXADECIMAL_PATTERN: Regex = Regex("[A-Fa-f0-9]{16}")
@Patch(
name = "Spoof Android Device ID",
description = "The Authentication of accounts in Piccoma only rely on the Android ID associated " +
"to the account. So you could edit this to copy one of your existing devices.",
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"
],
)],
use = false
)
@Suppress("unused")
object SpoofDevicePatch : BytecodePatch(
setOf(GetAndroidIDFingerprint),
) {
private var spoofedAndroidID =
stringPatchOption(
key = "spoofedAndroidID",
default = "0011223344556677",
title = "Spoofed Android ID",
// description = "Android ID to use",
required = true
) {
it!!.matches(HEXADECIMAL_PATTERN)
}
override fun execute(context: BytecodeContext) {
val spoofedAndroidID = spoofedAndroidID
GetAndroidIDFingerprint.result?.mutableMethod?.addInstructions(
0,
"""
const-string v0, "$spoofedAndroidID"
return-object v0
"""
)?: throw GetAndroidIDFingerprint.exception
}
}

View File

@ -0,0 +1,16 @@
package app.revanced.patches.piccomafr.misc.fingerprints
import app.revanced.patcher.extensions.or
import app.revanced.patcher.fingerprint.MethodFingerprint
import com.android.tools.smali.dexlib2.AccessFlags
internal object GetAndroidIDFingerprint : MethodFingerprint(
parameters = listOf("Landroid/content/Context"),
accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
strings = listOf(
"context",
"android_id"
),
returnType = "Ljava/lang/String"
)

View File

@ -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(
"""
)
}
}
}