XDA Developers

smali

Readers like you help support XDA Developers. When you make a purchase using links on our site, we may earn an affiliate commission. Read More.

latest

Apktool Logo Gray XDA feature
Apktool v2.5.0 adds better support for decoding apps built for Android 11

Apktool, the ever popular Android APK reverse-engineering tool, has reached version 2.5.0 with many fixes and Android 11 related improvements.

4
By 

If you're into reverse-engineering Android applications, then the name "Apktool" should ring a bell. Maintained by Connor Tumbleson AKA XDA Recognized Developer iBotPeaches, this open source tool allows you to disassemble Android application binary (known as APK) files, change something, and rebuild them. After a bit of a development hiatus, Apktool has now been freshly updated to version 2.5.0, with the new headline feature being "Android 11 support."

Riru Android Zygote
Easily apply Smali patches to Android Framework without a PC using this script

SmaliPatcher for Android is a script that lets you apply Smali patches to the Android Framework without needing a PC. Read on to know more!

4
By 

Customization is a big deal in the Android world. You’ve probably seen or sideloaded modded applications, e.g. a patched dialer with custom resolution support. However, making changes to your Android device’s framework values without having to use Apktool to decompile and recompile framework-res.apk is another thing. A new script named SmaliPatcher for Android from XDA Junior Member CreepycCrafter24 lets you do just that and more. It allows you to apply ready-made patches to the system framework directly from your Android phone. The script is also capable of generating a Magisk Module, so that you can system-lessly install the modded framework package.

Easily Edit Classes.dex with Dex Manager

This Windows tool allows you to decompile and compile the classes.dex files in simple and efficient way.

3
By 

Android applications can be edited in multiple ways. The most convenient way is of course changing the source code in your favorite IDE and compiling it with the provided tools. Unfortunately not every application available for Android is open-source, and therefore easy to edit through Android Studio or Eclipse with ADT.

Add Emoji Support to Your Jelly Bean Xperia Device

Emoji support was added with KitKat release. Learn how to use it on Sony Xperia Jelly Bean ROMs with a simple smali modification.

3
By 

Full emoji support was implemented in KitKat. It’s clear that not every device, even with a proper hardware configuration, received an update to this OS. Thus, emoji has been impossible for many to use fully.

Unlike most other mobile OSes, Android allows users to modify its source code to make the most of it. This is accomplished by editing code from the AOSP or AOSP-derived projects before compiling. However, not all of us build our own ROMs from source. Thus, there's the world of decompiling and Smali editing.

Android is meant to be open source. And most components, despite being covered by the Apache license, have publicly available source code. Unfortunately, the sad truth is that only Nexus devices owners can do Java modifications without digging into Smali assembler language, which is not simple and needs much more effort than Java. Also, decompiled applications can't be imported to Eclipse or Android Studio.

Custom-themed Google keyboards are all well and good, as the first-party Google keyboard has really come leaps and bounds with the last few iterations of Android. Some devices though, the Galaxy Note II for example, come with a pre-installed keyboard that is perfectly suited to the device and gives users multiple reasons to stick with the OEM offering rather than a third party option.

Android is an operating system that uses a lot of programming languages. The most common languages are Java (or Android Java if you prefer), C, XML, Bash, as well as a few more. Android applications can be decompiled by APKTool and a few similar tools, and their output is Smali. I know that many of you will disagree with me, but Smali is quite complicated language---much more than Java.

It's fair to say that unless you've spent some time digging around inside APK files and making some heavy duty modifications to apps or the Android OS itself, you probably haven't come face-to-face with a .smali file in its natural environment. They are a common component in many of the most popular Android tweaks and hacks out there such as adding toggles, extending the power menu, and adding CRT screen off animation.

If you spend a lot of time taking apart APK files, you're probably already intimately acquainted with APK Tool. For the unaware, it's the go-to tool for decompiling, recompiling, and generally tinkering with APK in any way you want. Despite it's incredible functionality, some people still prefer to use a nice simple GUI when performing basic tasks, as opposed to the menu driven interface of APK tool. It's for this very reason that XDA Senior Member elesbb has put together a couple of simple little applications to allow basic APK editing from a GUI.