SmaliScissors is an application designed to apply patches from the ApkEditor android application to a prepared (
disassembled) apk project.
However, please note that certain patches may not work as expected due to variations in XML file structure across
different decompilers or other potential issues.
- ADD_FILES ✔️
- REMOVE_FILES ✔️
- REMOVE_CODE ✅ (New)
- REMOVE_CODE_ACTION ✅ (New)
- MATCH_REPLACE ✔️
- MATCH_ASSIGN ✔️
- MATCH_GOTO ✔️
- GOTO ✔️
- MERGE ❌ (Not supported)
- EXECUTE_DEX ❓ (Supported with limitations)
- DUMMY ✔️
For more detailed information about patches, please refer to the wiki.
To get started, clone this repository:
git clone https://github.com/Cregrant/SmaliScissors.git && cd SmaliScissors
Then, build the minimalistic patcher.jar
library for inclusion in your application:
gradlew :patcher:fatJar
For more details on integrating SmaliScissors with your Gradle project and configuring logback (for SLF4J), refer to the Example lib usage wiki.
Alternatively, build a console_patcher.jar
file to execute patches from the command line:
gradlew :console_launcher:fatJar
To print the usage information (use Tab to find a JAR file):
java -jar console_patcher-<version>.jar
For interactive selection, use:
java -jar console_patcher-<version>.jar -i C:\projects_root -p C:\patches_folder -s
Or use predefined values:
java -jar console_patcher-<version>.jar -i C:\projects_root\decompiled_project_folder -p "C:\patches_folder\your best patch.zip"
SmaliScissors logs information using The Simple Logging Facade for Java (SLF4J).
The source code for SmaliScissors is released under the Apache License 2.0.