Skip to content

Olafcio1/XSMALI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ›Ή XSMALI

A language transpilable from&to SMALI, made for easier reengineering Android APK-s.

Before contributing, please read the last section.

πŸ€” Why not Java

  1. ⚠️ 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.

  2. ⏳ 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.

  3. ⚑ 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.

πŸ‹ Why not SMALI

  1. πŸ’β€β™‚οΈ Not noob-friendly: Beginners can't understand SMALI without 67 thousand Google searches, which is understandable.

  2. 〽️ 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.

πŸ’„ Setup

To set up XSMALI, you can either use our installation script, or install all required programs manually.

πŸ€– Script Installation

  1. Click Win + R
  2. Type powershell irm https://raw.githubusercontent.com/Olafcio1/XSMALI/main/xsmali/install/main.ps1 | iex
  3. Wait for the script to open and finish

πŸ“‚ Manual Installation

Download Links for Windows 10-11:

Name Download Link
Python x64 EXE for 3.14.0
Nerd Font 0xProto Nerd Font

πŸ›‘ In-case of the project getting archived

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.

About

A two-side transpiled language from SMALI.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published