Archive for September, 2012

September 2nd, 2012  Posted at   Android, CyanogenMod, Mildwild

As Mildwild CM-5.0 is one of the best roms I’ve ever used and the one I’m using right now, there is one customization that I’m accustomed to and it’s not available, the transparent status bar. Searching on the net I finally found a guide (link at the end) which explains how to do it on Cyanogenmod 7.0.3 and because this version of Mildwild is based on Cyanogenmod 7.2 we can get it to work with a few changes. I’ll explain in the following lines how I applied this customization on my HTC Desire GSM. The method is not dangerous but, if you are not sure about what you’re doing,  backup every file you change.

The first thing is to install a launcher that supports this option. I like “Go Launcher” but you can use others (e.g. ADWLauncher). In “Go Launcher” you can find this option inside “Preferences” – “Advanced settings”:

Transparent Status Bar Option

 

Now, as the warning says, we have to “make sure that our system has the transparent status bar!”.

We have to copy the file /system/app/SystemUI.apk to our computer. Use the method of your choice, sdcard-usb-computer, email, dropbox …

Open it with a compression/decompression tool like winzip, rar, 7zip.. I’ll use winRAR.

Extract the file /res/drawable-hdpi/statusbar_background.9.png (pay attention to the name because there are others very similar) and open it with an image manipulation tool like Photoshop or GIMP. Apply transparency to the image. You can make it 100% transparent if you want. I applied 20% of opacity (80% transparent).

Ok, that was easy. Next step.

Extract the file /classes.dex from SystemUI.apk. This is a compiled file for android. We have to decompile it, edit it and compile it again. For this purpose we need the tools baksmali and smali. You can download them from the following links:

baksmali smali

or from http://code.google.com/p/smali/downloads/list

Put these tools in the same folder as the classes.dex file and open a command line terminal.

Run this command:

java -jar baksmali-1.3.3.jar -o classout/ classes.dex

The folder classout has been created, open it. Edit the file com/android/systemui/statusbar/StatusBarService.smali with a text editor. Find the text “new-instance v0, Landroid/view/WindowManager$LayoutParams;“. I can find it in line 2210. Eight lines after this text we can find “const/4 v5, 0x2“. We have to change 0x2 to -0x3. So the line will be:

const/4 v5, -0×3

We’re done with the edition, save and close the file.

Now run this command to compile the file again:

java -jar smali-1.3.3.jar classout -o classes.dex

Ok, done. So far we have modified two files: statusbar_background.9.png and classes.dex. Now we have to put these files in the place they were inside SystemUI.apk, replacing the original ones. Use again the compression/decompression tool to perform this task.

The next step is to move our modified SystemUI.apk file to the sdcard. Again use the method you want; usb, email, dropbox… etc. Place it for example in the root of the sdcard.

The last step is to replace the SystemUI.apk that is running on your phone by the one we’ve modified. As we have to write in /system partition, which is mounted with read-only permissions, we need to remount it with writting permissions. For this task we need to use a Terminal on the Android device. If you don’t have one, get it from the market.

On the Terminal, run these commands:

su root

* I’ll suppose that you’ve copied the modified SystemUI.apk in the root of the sdcard, if you haven’t, change the path appropriately in the following command:

cd /sdcard/

mount -o remount,rw /system/

cp -f SystemUI.apk /system/app/

With this last command, the launcher usually crashes someway. In my case my status bar dissapear. You need to restart the phone.

After reboot you should have the status bar with the rate of transparency you’ve chosen:

Transparent Status Bar Working

I’m sure the previous steps (maybe with some modifications) can get transparent status bar working on other devices and versions. Just play a litte.

Original source: http://www.lazytrap.com/?p=314

Enjoy :)