mirror of
https://github.com/ReVanced/revanced-patches.git
synced 2024-11-10 09:07:46 +01:00
feat(Solid Explorer): Add Remove file size limit
patch
Co-authored-by: oSumAtrIX <johan.melkonyan1@web.de>
This commit is contained in:
parent
fab6e9fe85
commit
01c617d94e
2 changed files with 42 additions and 0 deletions
|
@ -0,0 +1,15 @@
|
|||
package app.revanced.patches.solidexplorer2.functionality.filesize.fingerprints
|
||||
|
||||
import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint
|
||||
import com.android.tools.smali.dexlib2.Opcode
|
||||
|
||||
object OnReadyFingerprint : MethodFingerprint(
|
||||
opcodes = listOf(
|
||||
Opcode.CONST_WIDE_32, // Constant storing the 2MB limit
|
||||
Opcode.CMP_LONG,
|
||||
Opcode.IF_LEZ,
|
||||
),
|
||||
customFingerprint = { methodDef, _ ->
|
||||
methodDef.definingClass == "Lpl/solidexplorer/plugins/texteditor/TextEditor;" && methodDef.name == "onReady"
|
||||
}
|
||||
)
|
|
@ -0,0 +1,27 @@
|
|||
package app.revanced.patches.solidexplorer2.functionality.filesize.patch
|
||||
|
||||
import app.revanced.extensions.toErrorResult
|
||||
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.getInstruction
|
||||
import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction
|
||||
import app.revanced.patcher.patch.BytecodePatch
|
||||
import app.revanced.patcher.patch.annotations.Patch
|
||||
import app.revanced.patches.solidexplorer2.functionality.filesize.fingerprints.OnReadyFingerprint
|
||||
import com.android.tools.smali.dexlib2.iface.instruction.ThreeRegisterInstruction
|
||||
|
||||
@Patch
|
||||
@Name("Remove file size limit")
|
||||
@Description("Allows opening files larger than 2 MB in the text editor.")
|
||||
@Compatibility([Package("pl.solidexplorer2")])
|
||||
class RemoveFileSizeLimitPatch : BytecodePatch(listOf(OnReadyFingerprint)) {
|
||||
override fun execute(context: BytecodeContext) = OnReadyFingerprint.result?.let { result ->
|
||||
val cmpIndex = result.scanResult.patternScanResult!!.startIndex + 1
|
||||
val cmpResultRegister = result.mutableMethod.getInstruction<ThreeRegisterInstruction>(cmpIndex).registerA
|
||||
|
||||
result.mutableMethod.replaceInstruction(cmpIndex, "const/4 v${cmpResultRegister}, 0x0")
|
||||
} ?: throw OnReadyFingerprint.toErrorResult()
|
||||
}
|
Loading…
Reference in a new issue