37 lines
1.6 KiB
Kotlin
37 lines
1.6 KiB
Kotlin
package app.revanced.patches.swissid.integritycheck
|
|
|
|
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.patches.swissid.integritycheck.fingerprints.CheckIntegrityFingerprint
|
|
import app.revanced.util.resultOrThrow
|
|
|
|
@Patch(
|
|
name = "Remove Google Play Integrity check",
|
|
description = "Removes the Google Play Integrity check. With this it's possible to use SwissID on custom ROMS." +
|
|
"If the device is rooted, root permissions must be hidden from the app.",
|
|
compatiblePackages = [CompatiblePackage("com.swisssign.swissid.mobile")],
|
|
)
|
|
@Suppress("unused")
|
|
object RemoveGooglePlayIntegrityCheck : BytecodePatch(
|
|
setOf(CheckIntegrityFingerprint),
|
|
) {
|
|
private const val RESULT_METHOD_REFERENCE = " Lcom/swisssign/deviceintegrity/" +
|
|
"DeviceintegrityPlugin\$onMethodCall\$1;->\$result:" +
|
|
"Lio/flutter/plugin/common/MethodChannel\$Result;"
|
|
private const val SUCCESS_METHOD_REFERENCE =
|
|
"Lio/flutter/plugin/common/MethodChannel\$Result;->success(Ljava/lang/Object;)V"
|
|
|
|
override fun execute(context: BytecodeContext) =
|
|
CheckIntegrityFingerprint.resultOrThrow().mutableMethod.addInstructions(
|
|
0,
|
|
"""
|
|
iget-object p1, p0, $RESULT_METHOD_REFERENCE
|
|
const-string v0, "VALID"
|
|
invoke-interface {p1, v0}, $SUCCESS_METHOD_REFERENCE
|
|
return-void
|
|
""",
|
|
)
|
|
}
|