2.0.0 (2026-10-22)
Bug Fixes
- Allow static versus non-static access flag filtering (#244) (a74bcf5)
- Change raw unordered string declarations to equals comparison (#248) (d5e668a)
- Universal patches declared default true do not give enough feedback what patch is at fault. Change 2.0.0 behavior from logger warning to an exception (5c2f42f)
- Use regex to escape/unescape strings to avoid Android slow XML processing (#256) (e0f99b8)
Features
- Add additional instruction location searching (#249) (09bd529)
- Add Compatibility form factor type (#261) (d36ea84)
- Add Fingerprint
superclassandinterfacesmatching (dd36ef3) - Add FreeRegisterProvider and basic BytecodeUtils (#246) (eae7c7d)
- Add overloaded
stringsdeclaration with more precise matching (21ea8a6) - Add validation flag to perform additional fingerprint checks and logging (#253) (966da3f)
- Retry matching certain instruction sequences if a partial match is encountered (#250) (b413e80)
- Use selective resource decoding (#247) (9471442)
Performance Improvements
- Copy unchanged extension DEX files, index instructions without decoding them, and skip unchanged mutable methods when matching fingerprints (#251) (aa883a2)
- Leave replaced entries out of the resource APK (446cd3b)
- Match file names directly when decoding resources by pattern (4554677)
- Speed up XML saving, path matching and JSON writing on Android, and assign new resource IDs in a stable order (f13a39d)
BREAKING CHANGES
- Resources are now decoded on request instead of all up front. Patches compiled with previous patcher versions still retain old "decode everything" behavior. For more details see here: https://github.com/MorpheApp/morphe-patcher/blob/main/docs/5_patcher_changes.md