April 17, 2014 By: eagleeyetom
Android is the only popular mobile operating system that allows users, developers, and OEMs to implement dramatic modifications to its user interface. Some OEMs such as Samsung, LG, and Sony release their devices with highly modified custom software, which differs greatly from Google’s version of Android that is seen in Nexus and GPe devices.
One of the aspects that is often changed in OEM skins is the lock screen. Almost every OEM has its own unique style of lock screen. But what to do when you want to have a bit of the AOSP taste in your device without fully switching to an AOSP-based ROM? If you have an ICS-powered Samsung device, the answer is simple: Read a guide written by XDA Recognized Contributor Mohitash that shows you how to change the lock screen on Ice Cream Sandwich-based Samsung devices like the Galaxy S Duos or Captivate Glide.
The guide begins by using the well known APKTool to decompile SecSettings.apk and android.policy.jar. Then, you perform some smali editing, recompile, and send the modified files back to the device. The method is thoroughly described, so you shouldn’t have much trouble adding it to your stock or stock-based TouchWiz ROM.
If you still own an older Ice Cream Sandwich-powered Samsung device and want to make it to look a bit more like a Nexus phone, head over to the guide thread and give the described method a try.
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.
Here on XDA, developers create amazing things. One new and exciting project allows users to create external controls for SystemUI.APK. The project comes in the form of a guide written by XDA Recognized Developer and Themer serarj, and it allows users to change the look of the status bar and other UI elements on the fly. But rather than simply providing completed applications that accomplish this goal, Serarj decided to share his knowledge and show others how to do this themselves in Eclipse.
If you are a ROM chef and want to add something interesting to your work, or if you simply wish to use it in your own personal builds, your way to the guide thread to get started.
The Hangouts app is loved by some and hated by others, who prefer the good old fashioned Google Talk. Unfortunately, Hangouts has a few issues that are quite annoying, such as the lack of a return key when returning messages. But fear not because with a bit of patience and a willingness to learn and some new tools, you will be able to change Hangouts to be more usable.
To do this, you need APKtool and a guide written by XDA Recognized Contributor CNexus. To make the necessary modifications, you need to have the Hangouts application extracted from your device. Keep in mind that Hangouts is updated from time to time, so you would need to repeat the process after every update. After decompiling the application, you need to enter few Smali lines and compile it again. With a little dose of luck, your Hangouts application will show your onscreen keyboard’s enter key rather than the smiley key.
To learn more about the process, head over to the original guide thread.
February 19, 2014 By: eagleeyetom
The panel that is available when you drag down your status bar differs in almost every custom build of Android. It’s different in Sony or Samsung ROMs, not to mention AOSP and AOSP-derived ROMs. This panel is frequently used to toggle device features like WiFi, GPS, and ringer mode. Needless to say, these settings can be changed, and we don’t need Xposed Framework this time thanks to a little smali editing.
Those of you running Samsung devices may be familiary with 3Minit Mod by XDA Recognized Contributor gharrington. The developer was kind enough to share the source code with users, and now 3Minit can be used on other devices. With this modification you gain a quick launch panel, which adds a possibility of running your favorite applications directly from the notification zone.
The panel is fully customizable, and it enhances a functionality of your Android device. To test it, you need to have deodexed SystemUI.apk, which needs to be recompiled with APKTool. Gharrington prepared a package with all the smali files required to successfully add Quicklauncher settings to your ROM, so the smali modifications will be reduced to absolute minimum.
In just few seconds, you can add a powerful modification to your device—but to do that, you need to visit the original thread to get started.
February 9, 2014 By: eagleeyetom
Every new version of Android offers a tweaked graphical style. KitKat’s UI differs a bit from the more prominent Holo blue from Ice Cream Sandwich and Jelly Bean, as that blue color was replaced by aesthetically appealing white. Unfortunately, some elements still appear to be taken directly from Jelly Bean, which is most likely true.
If you’ve ever wondered how “proper” KitKat should look, you should take a look at the guide presented by XDA Senior Member enricocid, who made a KitKat look more KitKat-like. Enricocid used some values from the SlimROMs repositories and shared the smali code, which can be used to complete the look of KitKat. Many elements were changed, such as the buttons, progress bars, page indicators, and more. More screenshots with applied changes can be found in the thread.
If you own a Nexus 4, 5, or 7 and don’t want to look deep inside into smali code, you can easily download a ready-to-use modifications that can be applied in the recovery. But if you want to play with smali code, don’t forget to download some tool to recompile the application, and of course make sure that your device is rooted.
February 4, 2014 By: eagleeyetom
Holo UI has become an integral part of Android ever since the the launch of version 3.0 Honeycomb. Its visual styling has earned quite a few fans, as well as many who actually dislike it. A few days ago, we talked about the Holofication Nation project, where developers are transforming well known applications to better fit the Holo style. Now it’s time to continue this journey and further ‘Holo-ify’ your device.
Your battery stats readout is one of the last places in Android’s UI that hasn’t yet been touched by the Holo magic. But with a small amount of work, you can change this state. XDA Recognized Themer and Contributor iamareebjamal posted a guide describing the process of transforming battery menu stats from its current drab color scheme to blue, eye-candy Holo style. Some smali editing is required, so you need to be familiar with tools like APK Tool. However, the whole process should only take a few minutes, and it should work on most Android devices running Gingerbread or later. If you don’t like Holo blue, you can easily choose a different color, so you can even make it pink if you so choose.
If you want to give it a shot, make your way to the original thread and follow the steps. Just be sure to backup any files that you modify in case you wish to revert.
January 2, 2014 By: eagleeyetom
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.
There are some tools like GetJava that already can do the job, but in most situations the result isn’t 100% accurate and some files still need to be translated to Java. XDA Senior Member darkguy2008 decided to start a project aimed to provide a better solution than JAD or JD-GUI.
The project is still at a very early stage, but most things are working already. This project is written in C# and needs Visual Studio 2012 and .NET Framework 4.5 installed to work properly. Hopefully in the future, it will be possible to use it on other operating systems like Linux or Mac OS X. Undoubtedly, this project has terrific potential and with help of other developers, the Android development can be significantly improved.
More information regarding this converter can be found in the original thread, so don’t hesitate to go there and give some input to the developer. Of course, you can also contribute by pushing some patches to the Github repository.
Bear in mind that tools like this should not be used to get some freebies from paid apps and re-release it under your name. Developers sell their work for a reason, so you should use it only for educational purposes.
December 20, 2013 By: Conan Troutman
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.
From a customisability standpoint though, the Samsung keyboard is something of a nuisance. That’s not to say that the stock keyboard cannot be tailored to meet your aesthetic preference—it certainly can and has been. There was however, one alteration that had eluded developers and themers for quite some time, and that was the swipe trail left behind after inputting text. Sure, that little blue trail isn’t exactly the most pressing issue out there, but I’m sure it is incredibly annoying for someone with an otherwise perfectly themed keyboard. Thanks to XDA Recognised Themer Gunthermic, that elusive value has now been tracked down, and he has left instructions for everyone else on how to follow suit.
The adjustment needs to be made to the Smali contained within the keyboard APK file itself, which is easily accessed using a tool such as VTS. All the required changes to the code are clearly outlined in Gunthermic’s forum thread for both the Note II and Note 3, along with some advice on the colour codes. Check it out if you’re looking to polish off that keyboard theme or if you are looking for a quick and easy introduction to Smali editing.
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.
There are two tools that can convert Smali back to Java: Dex2Jar and JAD. They are pretty hard to use, though, and need some experience to use them properly. Luckily, XDA Recognized Developer broodplank1337 created a simple bash script, that does all the work for us. This script can get all necessary dependencies, as well as get the Java code straight from APK. It works on Linux only, but I’m quite sure that can be used on non UNIX-like systems like Windows with Cygwin. The developer recommends that you put the file in ~/bin and make it executable. Further instructions are available in the thread.
Sometimes scripts can make life a lot easier. If you are interested in the project, make your way to the original thread to get more information and learn how to convert assembler code into Java.
Note: Tools like this should be used for educational purposes. “Borrowing” code from applications (paid or free) is unethical and should not take place. They are closed source for a reason. Keep that in mind.
December 13, 2013 By: eagleeyetom
Further hiding App Ops in Android 4.4.2, Google sparked many questions about the actual freedom in Android. Thanks to an Xposed Framework module by XDA Forum Member caspase, the functionality known from previous versions of Android was restored. However, Xposed on KitKat is incompatible with ART compiler, which was one of the major improvements of the Google’s operating system.
Fear not, if you thought that App Ops is not for you. Thanks to XDA Recognized Developer Calkulin and his smali assembler code knowledge, the much loved function can be implemented to Android 4.4.2 without breaking ART compiler.
The process of re-adding App Ops is not difficult. You need to have a decompiling tool or a kitchen that is able to decompile Settings.APK and a good text editor (preferably Notepad++ if you are on Windows). All you need to do is pull the APK from your device, decompile it, make the changes thoughtfully described by Calkulin, recompile it, and push the APK back. Of course, your device must be rooted, and ADB is preferable to manually copying the modified APK.
You can learn more about how to restore App Ops on your device by visiting the original thread.
November 29, 2013 By: Conan Troutman
Well over a year ago now, we brought you news of a tool that solved the problem of users not being able to distribute themes for paid apps. Remote Theme Injector did exactly as its name suggests and “injects” the necessary themed elements into an APK, thereby allowing themers to make their work on paid apps available without distributing warez. The tool was often updated by its developer, XDA Senior Moderator and Recognized Developer Diamondback, whose name you might recognise from another project, Virtuous Ten Studio.
The Remote Theme Injector has since been incorporated into VTS, adding yet another useful feature into an already incredibly versatile piece of software for a variety of Android projects. VTS itself is essentially an IDE and a whole lot more, aimed at everyone from ROM developers to smali gurus, and now themers. It is capable of not only decompiling, modifying, and recompiling applications, but also modifying the m10 files that are a major component of HTC’s Sense UI, as well as the unpacking/repacking of boot images. That’s barely scratching the surface of what VTS is capable of, and I highly recommend checking out the VTS home page and XDA forum thread for more information.
The updated RTI bundled with VTS takes advantage of these features, and now allows for smali modifications to be included as part of the application themes. For a perfect example of just what is possible with RTI, check out the most recent batch of TapaTalk Pro/Free themes by XDA Recognized Developer and Themer Whiskey103. Whether you have the compulsive desire to ensure that all your installed apps maintain a strict theme or just fancy giving TapaTalk a quick makeover, this is definitely something worth looking into.
June 13, 2013 By: Will Verduzco
Nearly everyone who peruses these forums has heard of XDA Recognized Developer JesusFreke‘s tool Smali/Baksmali. For the few who are still in the dark, the tool functions as an assembler and disassembler for the Dex files used by the Dalvik virtual machine on Android. Essentially, with this tool, one can disassemble code, modify it, and reassemble it upon completion. And for the extra curious out there, the names are derived from their Icelandic equivalents—fitting, given that Dalvik comes from the language as well.
While quite a few people are well versed with using Smali/Baksmali, others may find it more approachable with a menu-driven interface. Thankfully, this is where XDA Recognized Themer majdinj comes in. His tool allows users to use the original tool in a more streamlined / newbie-friendly way. And as one would hope for, setting up and using Majdinj’s tool for use is quite easy. The instructions, as stated by the developer:
Run Backsmali_tool.bat file, this will create all needed folders in the first run..
1. Put android apk or jar file in “put-file-here” folder. If Current-file status is set to None, then either you need to set a file in option #3 or you forget putting valid file in “put-file-here” folder.
2. When Current-file status is set to your file, you can disassemble its classes.dex by option #1.
3. Classout folder with name of file project will be created in “project” folder; make your changes there.
4. If finished your changes, assemble classout folder by option #2.
5. If everything is OK, a new file will be created in “finish” folder with tag (Modded_) in its name, just rename it to its original name and push it to your device; don’t forget to fix permissions as well.
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.
The files themselves can often be found nestled inside APKs and become available for modification once that particular file is decompiled with a utility such as APKTool. Unfortunately, these smali files sometimes have a tendency to squirrel themselves away inside the classes.dex of a JAR file and make themselves a little more awkward and time consuming to reach and manipulate. Following on from his recent guide to ADB commands, XDA Senior Member iamareebjamal has put together a one-click tool that will allow you to decompile the classes.dex from any APK or JAR file with ease.
Simply place the relevant file in the input folder, decompile, make any necessary changes to the newly available files, recompile, and check the output folder for your modified version. It’s as simple as that. Obviously there are a few prerequisites to this, namely some kind of personal computing device running Windows, Java (ideally in software and liquid form), the relevant files and tools (notepad++, an archive manager etc), and some idea of what you’d actually like to achieve as the end result. If you have all of those at your disposal, this could prove to be a great little time saver and well worth a visit to the original thread.