feat(google-recorder): add remove-device-restrictions
patch
This commit is contained in:
parent
2fac865b3b
commit
ef96ed124e
|
@ -0,0 +1,12 @@
|
||||||
|
package app.revanced.patches.googlerecorder.restrictions.fingereprints
|
||||||
|
|
||||||
|
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
||||||
|
|
||||||
|
object OnApplicationCreateFingerprint : MethodFingerprint(
|
||||||
|
strings = listOf("com.google.android.feature.PIXEL_2017_EXPERIENCE"),
|
||||||
|
customFingerprint = custom@{ methodDef, classDef ->
|
||||||
|
if (methodDef.name != "onCreate") return@custom false
|
||||||
|
|
||||||
|
classDef.type.endsWith("RecorderApplication;")
|
||||||
|
}
|
||||||
|
)
|
|
@ -0,0 +1,42 @@
|
||||||
|
package app.revanced.patches.googlerecorder.restrictions.patch
|
||||||
|
|
||||||
|
import app.revanced.extensions.toErrorResult
|
||||||
|
import app.revanced.patcher.annotation.Description
|
||||||
|
import app.revanced.patcher.annotation.Name
|
||||||
|
import app.revanced.patcher.annotation.Version
|
||||||
|
import app.revanced.patcher.data.BytecodeContext
|
||||||
|
import app.revanced.patcher.extensions.InstructionExtensions.addInstruction
|
||||||
|
import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
|
||||||
|
import app.revanced.patcher.extensions.InstructionExtensions.removeInstructions
|
||||||
|
import app.revanced.patcher.patch.BytecodePatch
|
||||||
|
import app.revanced.patcher.patch.PatchResult
|
||||||
|
import app.revanced.patcher.patch.PatchResultSuccess
|
||||||
|
import app.revanced.patcher.patch.annotations.Patch
|
||||||
|
import app.revanced.patches.googlerecorder.restrictions.fingereprints.OnApplicationCreateFingerprint
|
||||||
|
import org.jf.dexlib2.iface.instruction.OneRegisterInstruction
|
||||||
|
|
||||||
|
@Patch
|
||||||
|
@Name("remove-device-restrictions")
|
||||||
|
@Description("Removes restrictions from using the app on any device.")
|
||||||
|
@Version("0.0.1")
|
||||||
|
class RemoveDeviceRestrictions : BytecodePatch(
|
||||||
|
listOf(OnApplicationCreateFingerprint)
|
||||||
|
) {
|
||||||
|
override fun execute(context: BytecodeContext): PatchResult {
|
||||||
|
OnApplicationCreateFingerprint.result?.let {
|
||||||
|
val featureStringIndex = it.scanResult.stringsScanResult!!.matches.first().index
|
||||||
|
|
||||||
|
it.mutableMethod.apply {
|
||||||
|
// Remove check for device restrictions.
|
||||||
|
removeInstructions(featureStringIndex - 2, 5)
|
||||||
|
|
||||||
|
val featureAvailableRegister = getInstruction<OneRegisterInstruction>(featureStringIndex).registerA
|
||||||
|
|
||||||
|
// Override "isPixelDevice()" to return true.
|
||||||
|
addInstruction(featureStringIndex, "const/4 v$featureAvailableRegister, 0x1")
|
||||||
|
}
|
||||||
|
} ?: return OnApplicationCreateFingerprint.toErrorResult()
|
||||||
|
|
||||||
|
return PatchResultSuccess()
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue