A language transpilable from&to SMALI, made for easier reengineering Android APK-s.
Before contributing, please read the last section.
-
β οΈ Avoiding problems: There weren't many projects to transpile SMALI to Java, so I decided to make my own custom transpiler, as it's easiest to fix bugs in - my own software. -
β³ Time-consuming setup: Setting up a Java project from an existing structure takes time, which I'd rather avoid, especially since I'm not a Java expert.
-
β‘ Performance: XSMALI builds very fast compared to Java, since it doesn't validate code - it should contain enough information to compile to SMALI without advanced alghoritms.
-
πββοΈ Not noob-friendly: Beginners can't understand SMALI without 67 thousand Google searches, which is understandable.
-
γ½οΈ Additional complexity: Even senior programmers may struggle to edit SMALI code, as it looks ugly and adds another layer of complexity to the whole process.
To set up XSMALI, you can either use our installation script, or install all required programs manually.
- Click
Win+R - Type
powershell irm https://raw.githubusercontent.com/Olafcio1/XSMALI/main/xsmali/install/main.ps1 | iex - Wait for the script to open and finish
Download Links for Windows 10-11:
| Name | Download Link |
|---|---|
| Python | x64 EXE for 3.14.0 |
| Nerd Font | 0xProto Nerd Font |
XSMALI has been tested on actual parts of real apps from the Play Store, so it should work with all SMALI files up to the version supported by the last XSMALI update.
If you have a suggestion or stumbled upon a bug, you can create an issue or a feature request.
- Merging into XSMALI: I may have a hard time accepting pull requests as I hate Git and merging pull requests includes Git in the process.
- Maintaining a fork: If I don't accept or even see it, you can make your own fork of the repository, where you implement your proposed changes.
The project is made in Python and it's strongly typed, so it should be easy to contribute - as far as you know Python and have experience in creating programming languages.