mirror of
https://github.com/ReVanced/revanced-patches.git
synced 2025-05-10 20:55:38 +02:00
Implementing simple bypass for client-side license checking
This commit is contained in:
parent
35637c8bc7
commit
ef14f3ab9c
3 changed files with 42 additions and 0 deletions
|
@ -144,6 +144,10 @@ public final class app/revanced/patches/angulus/ads/RemoveAdsPatchKt {
|
|||
public static final fun getAngulusPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
|
||||
}
|
||||
|
||||
public final class app/revanced/patches/angulus/misc/license/DisableLicenseCheckPatchKt {
|
||||
public static final fun getDisableLicenseCheckPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
|
||||
}
|
||||
|
||||
public final class app/revanced/patches/backdrops/misc/pro/ProUnlockPatchKt {
|
||||
public static final fun getProUnlockPatch ()Lapp/revanced/patcher/patch/BytecodePatch;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
package app.revanced.patches.angulus.misc.license
|
||||
|
||||
import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
|
||||
import app.revanced.patcher.patch.bytecodePatch
|
||||
import app.revanced.util.returnEarly
|
||||
|
||||
@Suppress("unused")
|
||||
val disableLicenseCheckPatch = bytecodePatch(
|
||||
name = "Disable license check",
|
||||
description = "Disable client-side license check to prevent app from closing on startup."
|
||||
) {
|
||||
compatibleWith("com.drinkplusplus.angulus"("5.0.20"))
|
||||
|
||||
execute {
|
||||
// Set first parameter (responseCode) to 0.
|
||||
processLicenseResponseFingerprint.method.addInstruction(0, "const/4 p1, 0x0")
|
||||
|
||||
// Short-circuit the license response validation.
|
||||
validateLicenseResponseFingerprint.method.returnEarly();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
package app.revanced.patches.angulus.misc.license
|
||||
|
||||
import app.revanced.patcher.fingerprint
|
||||
|
||||
internal val processLicenseResponseFingerprint = fingerprint {
|
||||
custom { method, classDef ->
|
||||
classDef.type == "Lcom/pairip/licensecheck/LicenseClient;" &&
|
||||
method.name == "processResponse"
|
||||
}
|
||||
}
|
||||
|
||||
internal val validateLicenseResponseFingerprint = fingerprint {
|
||||
custom { method, classDef ->
|
||||
classDef.type == "Lcom/pairip/licensecheck/ResponseValidator;" &&
|
||||
method.name == "validateResponse"
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue