Compare commits

..

11 Commits

Author SHA1 Message Date
semantic-release-bot
426c4c2600 chore(release): 2.190.0-dev.1 [skip ci]
# [2.190.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v2.189.0...v2.190.0-dev.1) (2023-08-28)

### Features

* **Photomath:** Support latest version ([8bcbd84](8bcbd8443d))
2023-08-28 13:48:22 +00:00
badawoll
8bcbd8443d feat(Photomath): Support latest version
Co-authored-by: oSumAtrIX <johan.melkonyan1@web.de>
2023-08-28 15:45:47 +02:00
semantic-release-bot
1d01155b47 chore(release): 2.189.0 [skip ci]
# [2.189.0](https://github.com/ReVanced/revanced-patches/compare/v2.188.1...v2.189.0) (2023-08-27)

### Features

* Restore previous release ([2adfc37](2adfc37a66))
2023-08-27 23:56:04 +00:00
oSumAtrIX
bada0ea50f chore: merge branch dev to main (#2884) 2023-08-28 01:53:14 +02:00
semantic-release-bot
0a9e0982da chore(release): 2.189.0-dev.1 [skip ci]
# [2.189.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v2.188.1...v2.189.0-dev.1) (2023-08-27)

### Features

* Restore previous release ([2adfc37](2adfc37a66))
2023-08-27 20:29:07 +00:00
oSumAtrIX
078e5d3b88 build: bump dependencies 2023-08-27 22:25:18 +02:00
oSumAtrIX
2adfc37a66 feat: Restore previous release
This reverts commit 3938f2f1b3.
2023-08-27 21:41:04 +02:00
semantic-release-bot
392021124c chore(release): 2.188.1 [skip ci]
## [2.188.1](https://github.com/ReVanced/revanced-patches/compare/v2.188.0...v2.188.1) (2023-08-27)

### Bug Fixes

* Revert previous release ([3938f2f](3938f2f1b3))
2023-08-27 02:44:10 +00:00
oSumAtrIX
d5dd8a22de chore: merge branch dev to main (#2880) 2023-08-27 04:40:34 +02:00
semantic-release-bot
03725b853a chore(release): 2.188.1-dev.1 [skip ci]
## [2.188.1-dev.1](https://github.com/ReVanced/revanced-patches/compare/v2.188.0...v2.188.1-dev.1) (2023-08-27)

### Bug Fixes

* Revert previous release ([3938f2f](3938f2f1b3))
2023-08-27 02:40:19 +00:00
oSumAtrIX
3938f2f1b3 fix: Revert previous release
The previous release depends on a version of ReVanced Patcher which prevents usage of resource patches on lower Android versions. To solve this issue temporarily, until a fix is present, the previous release is reverted.
2023-08-27 04:37:21 +02:00
12 changed files with 130 additions and 41 deletions

View File

@@ -1,3 +1,38 @@
# [2.190.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v2.189.0...v2.190.0-dev.1) (2023-08-28)
### Features
* **Photomath:** Support latest version ([5a2cad0](https://github.com/ReVanced/revanced-patches/commit/5a2cad077f03880ee1417c5cfd448bbdea4c07e2))
# [2.189.0](https://github.com/ReVanced/revanced-patches/compare/v2.188.1...v2.189.0) (2023-08-27)
### Features
* Restore previous release ([f7352fe](https://github.com/ReVanced/revanced-patches/commit/f7352feb6e9604162b52072d74310b9e3067bc69))
# [2.189.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v2.188.1...v2.189.0-dev.1) (2023-08-27)
### Features
* Restore previous release ([f7352fe](https://github.com/ReVanced/revanced-patches/commit/f7352feb6e9604162b52072d74310b9e3067bc69))
## [2.188.1](https://github.com/ReVanced/revanced-patches/compare/v2.188.0...v2.188.1) (2023-08-27)
### Bug Fixes
* Revert previous release ([ed24a20](https://github.com/ReVanced/revanced-patches/commit/ed24a201a9fbe08dd6694582d0ab08ced8ad026a))
## [2.188.1-dev.1](https://github.com/ReVanced/revanced-patches/compare/v2.188.0...v2.188.1-dev.1) (2023-08-27)
### Bug Fixes
* Revert previous release ([ed24a20](https://github.com/ReVanced/revanced-patches/commit/ed24a201a9fbe08dd6694582d0ab08ced8ad026a))
# [2.188.0](https://github.com/ReVanced/revanced-patches/compare/v2.187.0...v2.188.0) (2023-08-26)

View File

@@ -25,7 +25,7 @@ repositories {
}
dependencies {
implementation("app.revanced:revanced-patcher:14.0.0")
implementation("app.revanced:revanced-patcher:14.2.1")
implementation("com.android.tools.smali:smali:3.0.3")
// Required because build fails without it.
// TODO: Find a way to remove this dependency.

View File

@@ -1,4 +1,4 @@
org.gradle.parallel = true
org.gradle.caching = true
kotlin.code.style = official
version = 2.188.0
version = 2.190.0-dev.1

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,9 @@
package app.revanced.patches.photomath.detection.deviceid.fingerprints
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
object GetDeviceIdFingerprint : MethodFingerprint(
returnType = "Ljava/lang/String;",
strings = listOf("androidId", "android_id"),
parameters = listOf()
)

View File

@@ -0,0 +1,32 @@
package app.revanced.patches.photomath.detection.deviceid.patch
import app.revanced.extensions.exception
import app.revanced.patcher.annotation.Compatibility
import app.revanced.patcher.annotation.Description
import app.revanced.patcher.annotation.Name
import app.revanced.patcher.annotation.Package
import app.revanced.patcher.data.BytecodeContext
import app.revanced.patcher.extensions.InstructionExtensions.replaceInstructions
import app.revanced.patcher.patch.BytecodePatch
import app.revanced.patcher.patch.annotations.DependsOn
import app.revanced.patcher.patch.annotations.Patch
import app.revanced.patches.photomath.detection.deviceid.fingerprints.GetDeviceIdFingerprint
import app.revanced.patches.photomath.detection.signature.patch.SignatureDetectionPatch
import kotlin.random.Random
@Patch
@DependsOn([SignatureDetectionPatch::class])
@Name("Spoof device ID")
@Description("Spoofs device ID to mitigate manual bans by developers.")
@Compatibility([Package("com.microblink.photomath")])
class SpoofDeviceIdPatch : BytecodePatch(
listOf(GetDeviceIdFingerprint)
) {
override fun execute(context: BytecodeContext) = GetDeviceIdFingerprint.result?.mutableMethod?.replaceInstructions(
0,
"""
const-string v0, "${Random.nextLong().toString(16)}"
return-object v0
"""
) ?: throw GetDeviceIdFingerprint.exception
}

View File

@@ -1,19 +1,11 @@
package app.revanced.patches.photomath.detection.signature.fingerprints
import app.revanced.patcher.extensions.or
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
import com.android.tools.smali.dexlib2.AccessFlags
import com.android.tools.smali.dexlib2.Opcode
object CheckSignatureFingerprint : MethodFingerprint(
returnType = "V",
accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
customFingerprint = { methodDef, _ ->
(methodDef.definingClass == "Lcom/microblink/photomath/main/activity/LauncherActivity;" ||
methodDef.definingClass == "Lcom/microblink/photomath/PhotoMath;") &&
methodDef.name == "onCreate"
},
strings = listOf(
"packageInfo.signatures",
"currentSignature"
),
opcodes = listOf(

View File

@@ -23,5 +23,4 @@ class SignatureDetectionPatch : BytecodePatch(
mutableMethod.replaceInstruction(signatureCheckInstruction.location.index, "const/4 v$checkRegister, 0x1")
} ?: throw CheckSignatureFingerprint.exception
}
}

View File

@@ -0,0 +1,17 @@
package app.revanced.patches.photomath.misc.bookpoint.fingerprints
import app.revanced.patcher.extensions.or
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
import com.android.tools.smali.dexlib2.AccessFlags
object IsBookpointEnabledFingerprint : MethodFingerprint(
returnType = "Z",
accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
parameters = listOf(),
strings = listOf(
"NoGeoData",
"NoCountryInGeo",
"RemoteConfig",
"GeoRCMismatch"
)
)

View File

@@ -0,0 +1,20 @@
package app.revanced.patches.photomath.misc.bookpoint.patch
import app.revanced.extensions.exception
import app.revanced.patcher.annotation.Description
import app.revanced.patcher.data.BytecodeContext
import app.revanced.patcher.extensions.InstructionExtensions.replaceInstructions
import app.revanced.patcher.patch.BytecodePatch
import app.revanced.patches.photomath.misc.bookpoint.fingerprints.IsBookpointEnabledFingerprint
@Description("Enables textbook access")
class EnableBookpointPatch : BytecodePatch(listOf(IsBookpointEnabledFingerprint)) {
override fun execute(context: BytecodeContext) =
IsBookpointEnabledFingerprint.result?.mutableMethod?.replaceInstructions(
0,
"""
const/4 v0, 0x1
return v0
"""
) ?: throw IsBookpointEnabledFingerprint.exception
}

View File

@@ -1,8 +0,0 @@
package app.revanced.patches.photomath.misc.unlockplus.annotations
import app.revanced.patcher.annotation.Compatibility
import app.revanced.patcher.annotation.Package
@Compatibility([Package("com.microblink.photomath", arrayOf("8.20.0"))])
@Target(AnnotationTarget.CLASS)
internal annotation class UnlockPlusCompatibilty

View File

@@ -1,37 +1,30 @@
package app.revanced.patches.photomath.misc.unlockplus.patch
import app.revanced.extensions.exception
import app.revanced.patcher.annotation.Description
import app.revanced.patcher.annotation.Compatibility
import app.revanced.patcher.annotation.Name
import app.revanced.patcher.annotation.Package
import app.revanced.patcher.data.BytecodeContext
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.patch.BytecodePatch
import app.revanced.patcher.patch.annotations.DependsOn
import app.revanced.patcher.patch.annotations.Patch
import app.revanced.patches.photomath.detection.signature.patch.SignatureDetectionPatch
import app.revanced.patches.photomath.misc.unlockplus.annotations.UnlockPlusCompatibilty
import app.revanced.patches.photomath.misc.bookpoint.patch.EnableBookpointPatch
import app.revanced.patches.photomath.misc.unlockplus.fingerprints.IsPlusUnlockedFingerprint
@Patch
@Name("Unlock plus")
@DependsOn([SignatureDetectionPatch::class])
@Description("Unlocks plus features.")
@UnlockPlusCompatibilty
@DependsOn([SignatureDetectionPatch::class, EnableBookpointPatch::class])
@Compatibility([Package("com.microblink.photomath")])
class UnlockPlusPatch : BytecodePatch(
listOf(
IsPlusUnlockedFingerprint
)
listOf(IsPlusUnlockedFingerprint)
) {
override fun execute(context: BytecodeContext) {
IsPlusUnlockedFingerprint.result?.mutableMethod?.apply {
addInstructions(
0,
"""
const/4 v0, 0x1
return v0
"""
)
} ?: throw IsPlusUnlockedFingerprint.exception
}
override fun execute(context: BytecodeContext) = IsPlusUnlockedFingerprint.result?.mutableMethod?.addInstructions(
0,
"""
const/4 v0, 0x1
return v0
"""
) ?: throw IsPlusUnlockedFingerprint.exception
}