From 91200f125ef386bf722cc3cc61b9a5aa175e2f06 Mon Sep 17 00:00:00 2001 From: Indranil012 Date: Sat, 10 Feb 2024 14:01:38 +0530 Subject: [PATCH] feat(tasker): bypass trial check --- .../annotations/UnlockTrialCompatibility.kt | 8 +++++ .../fingerprints/CheckLicenseFingerprint.kt | 7 +++++ .../trial/unlock/patch/UnlockLicensePatch.kt | 30 +++++++++++++++++++ 3 files changed, 45 insertions(+) create mode 100644 src/main/kotlin/dropped/patches/tasker/trial/unlock/annotations/UnlockTrialCompatibility.kt create mode 100644 src/main/kotlin/dropped/patches/tasker/trial/unlock/fingerprints/CheckLicenseFingerprint.kt create mode 100644 src/main/kotlin/dropped/patches/tasker/trial/unlock/patch/UnlockLicensePatch.kt diff --git a/src/main/kotlin/dropped/patches/tasker/trial/unlock/annotations/UnlockTrialCompatibility.kt b/src/main/kotlin/dropped/patches/tasker/trial/unlock/annotations/UnlockTrialCompatibility.kt new file mode 100644 index 0000000..3f1c42e --- /dev/null +++ b/src/main/kotlin/dropped/patches/tasker/trial/unlock/annotations/UnlockTrialCompatibility.kt @@ -0,0 +1,8 @@ +package app.revanced.patches.tasker.trial.unlock.annotations + +import app.revanced.patcher.annotation.Compatibility +import app.revanced.patcher.annotation.Package + +@Compatibility([Package("net.dinglisch.android.taskerm")]) +@Target(AnnotationTarget.CLASS) +internal annotation class UnlockTrialCompatibility diff --git a/src/main/kotlin/dropped/patches/tasker/trial/unlock/fingerprints/CheckLicenseFingerprint.kt b/src/main/kotlin/dropped/patches/tasker/trial/unlock/fingerprints/CheckLicenseFingerprint.kt new file mode 100644 index 0000000..d02ce92 --- /dev/null +++ b/src/main/kotlin/dropped/patches/tasker/trial/unlock/fingerprints/CheckLicenseFingerprint.kt @@ -0,0 +1,7 @@ +package app.revanced.patches.tasker.trial.unlock.fingerprints + +import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint + +object CheckLicenseFingerprint : MethodFingerprint( + strings = listOf("Can't check license") +) \ No newline at end of file diff --git a/src/main/kotlin/dropped/patches/tasker/trial/unlock/patch/UnlockLicensePatch.kt b/src/main/kotlin/dropped/patches/tasker/trial/unlock/patch/UnlockLicensePatch.kt new file mode 100644 index 0000000..b96823f --- /dev/null +++ b/src/main/kotlin/dropped/patches/tasker/trial/unlock/patch/UnlockLicensePatch.kt @@ -0,0 +1,30 @@ +package app.revanced.patches.tasker.trial.unlock.patch + +import app.revanced.extensions.toErrorResult +import app.revanced.patcher.annotation.Description +import app.revanced.patcher.annotation.Name +import app.revanced.patcher.data.BytecodeContext +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction +import app.revanced.patcher.patch.BytecodePatch +import app.revanced.patcher.patch.PatchResultSuccess +import app.revanced.patcher.patch.annotations.Patch +import app.revanced.patches.tasker.trial.unlock.annotations.UnlockTrialCompatibility +import app.revanced.patches.tasker.trial.unlock.fingerprints.CheckLicenseFingerprint + +@Patch +@Name("Unlock trial") +@Description("Unlocks the trial version.") +@UnlockTrialCompatibility +class UnlockLicensePatch : BytecodePatch( + listOf( + CheckLicenseFingerprint + ) +) { + override fun execute(context: BytecodeContext) = CheckLicenseFingerprint + .result + ?.mutableMethod + // Return the method early, which prompts the user with a non dismissible dialog, when the trial period is over. + ?.addInstruction(0, "return-void") + ?.let { PatchResultSuccess() } + ?: CheckLicenseFingerprint.toErrorResult() +} \ No newline at end of file