Wednesday, October 3, 2012

Notification Toggle on HTC Desire (Evervolv Turba 3.0.0p10 custom ROM by Nikez Lente)

First of all, I must say that I was excited when I found there were quite a few Jelly Bean (JB) custom ROM for my HTC Desire!

I first flashed the ROM by Vijendrahs (https://sites.google.com/site/androidromporting/downloads) as I have enjoyed the MIUI ROM. Unfortunately, my joy did not last very long as I soon discovered that everything works perfectly except for GPS. I have use Waze daily and so when it could not get my location (waze kept on showing me that I am somewhere in Ecuador and not Malaysia!), I got very frustrated. Tried also the AOKP ROM ported by Vijendrahs and it was the same problem.

Thus this was what triggered me to look for other JB ports, since I have nothing to loose. I come to accept that some things may not work on alpha/beta builds and I can live with it. So I found the ROM by Nikez Lente (http://nikez.nu/releases/). At first, I wasn't quite happy with it as I was so used to features offered by MIUI ROMs. So I nandroid the phone and restore back to MIUI ICS by Marange. Only then I realised that the ICS ROM was very much slower in response and everything seems to lag. I have forgotten that I use to have so many "App not responding" messages in ICS while I get none of it in ALL the JB build.

I then decide that I should restore the ROM by Nikez and get used to it. I must say that this ROM is very responsive and other than known issues, I find that it performed better than anything I had before!

Now, one thing I missed is that I can toggle wifi, mobile data and GPS via the notification bar. I believe it was purposely removed from this build, but it is so useful I started to find if there are any apps out there that could overcome this lack. And I did find some very nice apps, but among them all, "Notification Toggle" fits my needs the best. It may not have the best icons, but I can customize my own icons if I choose to. I can even download via another app built by the same developer. While design was something I can ignore, I was really annoyed that I can't toggle my GPS directly. The developer did mention that as long as my app is installed as a user app, it will only pull out the location settings and not toggle the GPS directly. I would need to move the apk to /system/app if I fix that.

Now comes the problem. Since the internal memory of HTC Desire is so small, I needed to use A2SD script to move all my apps to the SDCard so that I have more space to install more apps. So the conventional way of copying/moving the apk from /data/app to /system/app was impossible. It failed when I use ES Explorer. When I use command line (via Terminal Emulator), the error message was "out of memory".

I was at my wits end when and idea struck. If I can only make the app installable via a zip file, then I can install it like how I install my gapps. So I downloaded app2zip and zip up the app for Notification Toggle. Sadly, it installs back to my user app space.

Then, I figure that if zip a system app, I can restore it back to my /system/app. So I got my colleague to help me install all the necessary app in his SGS1:
1. Notification Toggle
2. /system/app mover
3. app2zip

I get him to move the Notification Toggle to /system/app (using /system.app mover) and create the zip file (via app2zip). Once the zip file is created, I get him to send me the zip file to be installed via clockworkmod recovery like how ROMs are being flashed and how gapps are installed.

Voila! Now Notification Toggle is a system app! I can now toggle GPS directly via the notification bar and no longer need to go via the location settings page! :)