Skip to content

Cregrant/SmaliScissors

Repository files navigation

SmaliScissors

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.

Patch support status:

  • 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.

Build

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

Usage

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).

License

The source code for SmaliScissors is released under the Apache License 2.0.

About

Alternative ApkEditor patch engine

Topics

Resources

License

Stars

Watchers

Forks

Languages