Transparent Status Bar--Instructions for DIY

Search This thread

pendo

Senior Member
Jun 3, 2010
1,971
759
Tulsa, OK
Disclaimer: I do not have any formal training with anything I'm covering here and it's entirely possible….dare I say probable…that I may state something incorrectly either partially or wholly (hopefully I’m not that far off). So this is just how I've come to understand things from my own self study as well as staring smali for countless hours (although I have to say the more I learn, the more I learn I don't know :eek:). Hopefully there’s another beginning android hobbyist that finds this useful and/or inspires him to try some new things.

**These instructions apply to Mac and Linux only, due to the fact we're working with aosp source and building in windows is not supported at this time**

Enabling Translucency
I approached this a little different than I’m used to seeing in terms of a mod. Normally we start off by decompiling an apk and go from there. Since this is for an aosp rom, we have easy access to the source code and can make changes there. Now, I don’t proclaim to know java. I have very, very little programming experience, and even that is limited to an introductory C++ class I just took. But even without knowing java, you’ll have a much easier time reading java source code than you will smali. So, yes, you need to sync with aosp to use this guide. It's not hard, and there's good instructions HERE.
As an aside, my personal opinion is that anyone that a true-blue xda'er should have aosp syned...even if you have no intention of building roms. It's like an android encyclopedia. I've learned A TON just from poking around/reading though some parts. I probably comprehend < 10%, but it's easily been one of the most beneficial things I've done to further my understanding.​

So now you have the source code. :) What we need to change is the PixelFormat for the statusbar. In froyo and gingerbread this was done in StatusBarService. It’s been changed a little in ics, although the edits remain in SystemUI. The two files I changed were StatusBar and PhoneStatusBar.

Starting in the root of your aosp working directory, the absolute path of the first file I edited is
Code:
frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/StatusBar.java
Open this in a good text editor. The PixelFormat parameter is specified in the getStatusBarHeight function. In the version I edited it is easily found on lne 124. Just search for “PixelFormat” and you’ll find it. (ignore the search return that’s part of the import statement at the beginning of the file) As soon as you get there you’ll see the problem. PixelFormat.OPAQUE. Replace OPAQUE with TRANSLUCENT. Save

Next you make similar edit in PhoneStatusBar.java. From the same directory that StatusBar.java is in, go to the phone directory and open PhoneStatusBar.java in your text editor. Now this file is much, much longer to read through. Rather than doing that (of course you can if you want) just performa search for that same text again “PixelFormat” You’ll get several returns, some of them will already have TRANSLUCENT set.

BUT...Don’t get carried away and change all the OPAQUE values. One of the search returns will be part of the function getRecentsLayoutParams (starts on line 378). The portion of code that you might be temted to change checks the PixelFormat by way of a boolean test
Code:
(opaque ? PixelFormat.OPAQUE : PixelFormat.TRANSLUCENT)
I left this alone.
Edit: After reading the entire code a little bit more, I think we could change it to
Code:
PixelFormat.TRANSLUCENT
without any ill effects, although I'm not sure what, if any, additional benefit we'd see. I have not tried.​

The exact places I did change OPAQUE to TRANSLUCENT were in lines 311, and 481. That’s it for the code portion. Make sure to save your changes. Now go back to the res directory and we need to edit some xml files.

From the root of the SystemUI directory, open res/values/colors.xml. Find the entry for “status_bar_background” and change it’s value to whatever you want. In mine I’ve set it to “a6000000” which black but 35% translucent. The first 2 characters control the opacity on a scale from 0-255 where 0 is completely transparent and 255 is fully opaque. That value is then stated in hexadecimal format; e.g. 0=00, 255=ff.

*if you also want a translucent bottom menu bar, it is set in res/layout/navigation_bar.xml. Change the hex value of android:background=”ff000000” to your desired value for opacity.*

Now you should have all the edits in place for a translucent statusbar. All that’s left is to compile the apk. Before you compile SystemUI, you need to have ran the extract-files script. Only needs to be done once. Connect your phone to the computer(making sure that usb debugging is turned on) then in terminal, starting from the root of your aosp working directory:
Code:
cd device/samsung/maguro/
./extract-files.sh
Let the script finish. It will create a new vendor directory in the root of your working directory and copy several files from your phone.

Now cd back to the root of your working directory and run
Code:
. build/envsetup.sh
Note the period and space before build. This is an important step which initialized the build environment. Several new commands will be available now such as "mm" "mmm" "croot" amongst others. Type "help" (without the quotes) for a full list of the new commands available.

Next step to build your SystemUI is to run lunch. Just type "lunch" and press enter:
Code:
pendo:master pendo$ lunch

You're building on Darwin

Lunch menu... pick a combo:
     1. full-eng
     2. full_x86-eng
     3. vbox_x86-eng
     4. full_stingray-userdebug
     5. full_wingray-userdebug
     6. full_crespo-userdebug
     7. full_crespo4g-userdebug
     8. full_maguro-userdebug
     9. full_toro-userdebug
     10. full_panda-eng

Which would you like? [full-eng]

It will list the available builds. Number 8 should be for maguro-user debug. Select it and press enter. And lastly, type
Code:
make SystemUI

It will take several minutes to build, especially the first time. But once it’s done, your new SystemUI will be in out/target/product/maguro/system/app/SystemUI.apk.
 
Last edited:

pendo

Senior Member
Jun 3, 2010
1,971
759
Tulsa, OK
Smali edits

OK...here's some instructions as a smali edit. Things to keep in mind here....smali is, for me at least, challenging to follow and fully comprehend what you are looking at. Also, this set of instructions is based off of working on a SystemUI for 4.0.3. My goal here is to give precise enough steps so that the right edits are made, while also trying to be "universal" in that this will hopefully work on other SystemUI's going forward. If we discover that tweaks need to be made, I'll edit this list.

Pixel format is stored as a integer constant. To review, here are some values of interest for this thread. (blue text is value)
  • OPAQUE(no alpha bit): -0x1
  • RGB_565(also no alpha): 0x4
  • TRANSLUCENT(many alpha bits) -0x3
First file to edit is StatusBar.smali. Open in your preferred text editor and search for this text:
Code:
Landroid/view/WindowManager$LayoutParams;-><init>(IIIII)V
Go to the line above it and change the last value from -0x1 to -0x3.


Next open PhoneStatusBar.smali. Search for this text:
Code:
const v4, 0x4800068
replace the 2 lines underneath with this:
Code:
const/4 v5, -0x3

move v2, v1


Next search for this text:
Code:
Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mPixelFormat:I
Once again we're going to edit the line above and change the last value to -0x3.


You can see the pattern of changing -0x1 to -0x3. However, you may notice that it's a 0x4 that your're replacing. You won't ever be replacing anything vastly different. So when following these instructions if you find that you're replacing something other than -0x1 or a 0x4, that should raise a red flag that it might not be the right thing to edit. *The first edit in PhoneStatusBar is a little different than the others and I think there is more than one way to do that, but this is how I did.

You may notice that I haven't listed the entire line for the search criteria ....this is because there may be differences with the local variables associated. Your file may be assigning the pixel format to local variable v8 and the next guys v9. *The first search in PhoneStatusBar I did give the whole line.

That's it for smali edits. Now you still have the res directory edits. With an aosp based rom, you need to change the hex value for status_bar_background in drawables.xml. Also, you now have translucency available for the softkey area.....it's background is set via hex color in res/layout/navigation_bar.xml.
 
Last edited:

joshnichols189

Senior Member
Jun 5, 2010
7,015
1,046
Chicago
I've been wanting a smooth circle battery mod! Only problem is, on Roman's AOKP rom flashing it makes the statusbar and virtual buttons disappear :( Happens with the other circle battery mod as well :/
 

P-bot

Member
Oct 22, 2010
43
1
This may just be me, but I got the battery only circle mod going on Romano's rom with the apex 4 kernel. Didn't work with the other kernel I was on.
 

JamieD81

Senior Member
Nov 11, 2009
4,204
8,144
Duncan
awesome instructions im going to download asop on my linux pc tonight and have at the systemui on boxing day or something. ive got the softkeys themed but thats as far as i can get without a ton of fc's when decompiling and editing xml's and some pngs, so hopefully this will help me learn a bit more.

thanks for the awesome write up!

edit: i get the same problem as the above people when flashing this on the rom in my sig
 

allofusjw

Senior Member
Jan 22, 2010
104
22
S. Jersey
pendo, thanks so much for this. its very educational and I appreciate the time you took to help all of us.
my question is...
in the cyanogenmod source instead of stating "opaque" or "translucent" it shows PixelFormat.RGB_565 which (I think) means it's 16bit and opaque. do you think it would have to then be changed to ARGB_8888, or something different? here's the link to the info I found: http://developer.android.com/reference/android/graphics/Bitmap.Config.html
I'm just unsure how to apply this info.
thanks man, love your work, glad to see you here!

Sent from my Galaxy Nexus using xda premium
 

fatsix

Senior Member
Oct 25, 2010
155
36
I used apktool to decompile the systemui.apk. I found the status bar files. But they are smali. When I edit them with notepad+ I cannot find the PixelFormat line. Sucks.

Sent from my Galaxy Nexus using XDA App
 

pendo

Senior Member
Jun 3, 2010
1,971
759
Tulsa, OK
I've been wanting a smooth circle battery mod! Only problem is, on Roman's AOKP rom flashing it makes the statusbar and virtual buttons disappear :( Happens with the other circle battery mod as well :/
My bad, I left out one VERY IMPORTANT detail. Whether or not you build your own or use the one I compiled it is a deodexed SystemUI.apk. If you previously had an odexed SystemUI then you MUST delete SystemUI.odex

I have been told that my apk works with this 4.0.3 IML74K rom.
Same here, soft buttons and status bar dissapear

Sent from my Galaxy Nexus using xda premium
Please see above note.

Also, these instructions as well as the provided apk DO NOT have Paul's softkey mod. I'm hesitant to say this, but I am tinkering a bit trying to replicate the edits in source form. I know I posted a SystemUI that had those edits for 4.0.2 but I did them as smali edits. I wish to add them to the source code which would make it much easier for updates. But I have no progress report on that. The *main* purpose of this thread was informational. I wanted to offer some help for someone to either do it themselves, or help someone who has the capacity/desire to update the apk as needed.
awesome instructions im going to download asop on my linux pc tonight and have at the systemui on boxing day or something. ive got the softkeys themed but thats as far as i can get without a ton of fc's when decompiling and editing xml's and some pngs, so hopefully this will help me learn a bit more.

thanks for the awesome write up!

edit: i get the same problem as the above people when flashing this on the rom in my sig
This is built purely from aosp sources, not CM. I would not expect what I compiled to work on anything other than aosp 4.0.3. However, the information in the first post should help you make a translucent statusbar if the CM9 source code is available somewhere.


pendo, thanks so much for this. its very educational and I appreciate the time you took to help all of us.
my question is...
in the cyanogenmod source instead of stating "opaque" or "translucent" it shows PixelFormat.RGB_565 which (I think) means it's 16bit and opaque. do you think it would have to then be changed to ARGB_8888, or something different? here's the link to the info I found: http://developer.android.com/reference/android/graphics/Bitmap.Config.html
I'm just unsure how to apply this info.
thanks man, love your work, glad to see you here!

Sent from my Galaxy Nexus using xda premium
Yes, I actually had some information regarding that in the first draft I had made, however I was getting concerned with the length as it was so I trimmed it down a bit.

Yes, RGB_565 is 16bit opaque. You should just change it to TRANSLUCENT. I've done this before, but in smali. One thing that I haven't figured out is why it's called RGBA vs ARGB. The hex values are done in ARGB. Go figure.:confused:

Also, here's some info that will help when trying to do this edit backwards, aka decompiling with apktool ;) Obviously when aapt compiles it doesn't store the code as TRANSLUCENT....but here's some of the values that it does store of what you'll most commonly see:

TRANSLUCENT = -0x3
OPAQUE = 0x1
RGBA_8888 = 0x1
RGBX_8888 = 0x2
RGB_565 = 0x4
 

pendo

Senior Member
Jun 3, 2010
1,971
759
Tulsa, OK
I used apktool to decompile the systemui.apk. I found the status bar files. But they are smali. When I edit them with notepad+ I cannot find the PixelFormat line. Sucks.

Sent from my Galaxy Nexus using XDA App

No....you cannot edit with Notepad.

my bad, I missed the "+" :p

Make your search for "mPixelFormat" and you should get better results. But it isn't as straight forward in smali. I'm still getting better at, but it is definitely more difficult to decipher what's happening in smali. Something that I've done to help is to compare source code with decompiled smali (making sure it's the same file).
 
Last edited:

fatsix

Senior Member
Oct 25, 2010
155
36
I decompiled the classes.dex before with something else. Was easier to edit. Can't remember which or find the directions. Java - jar I think.

Sent from my Galaxy Nexus using XDA App
 

allofusjw

Senior Member
Jan 22, 2010
104
22
S. Jersey
The *main* purpose of this thread was informational. I wanted to offer some help for someone to either do it themselves, or help someone who has the capacity/desire to update the apk as needed.

-Yes, I actually had some information regarding that in the first draft I had made, however I was getting concerned with the length as it was so I trimmed it down a bit.

-Yes, RGB_565 is 16bit opaque. You should just change it to TRANSLUCENT. I've done this before, but in smali. One thing that I haven't figured out is why it's called RGBA vs ARGB. The hex values are done in ARGB. Go figure.:confused:

-mission accomplished!
-isn't that how things always work out?

great, thank you very much! i hate having to reapply my theme edits with every rom flash. this is very helpful.
one more question...
will this edit "stick" in my local cyanogenmod workspace after a repo sync, or, would that require setting up my own github repo to view changes to cm framework vs my edited framework? please don't feel obligated to give an in depth explanation if that's what this question requires. I'd just like to know if my thinking is on the right path. thank you!



Sent from my Galaxy Nexus using xda premium
 
Last edited:

Reppu

Senior Member
Dec 5, 2011
59
10
Alcorcón
Would anyone please show a pic with the final result? I am most interested in this mod once i get my GNex by new year.
 

joshnichols189

Senior Member
Jun 5, 2010
7,015
1,046
Chicago
Here you go ;) mind of small but not a problem at all.

Sent from my Galaxy Nexus using xda premium
 

Attachments

  • uploadfromtaptalk1324803730988.jpg
    uploadfromtaptalk1324803730988.jpg
    52.5 KB · Views: 961
  • Like
Reactions: Reppu

pendo

Senior Member
Jun 3, 2010
1,971
759
Tulsa, OK
I decompiled the classes.dex before with something else. Was easier to edit. Can't remember which or find the directions. Java - jar I think.

Sent from my Galaxy Nexus using XDA App
If you're including the need to download aosp source, you would be correct. But the mod itself I feel is easier in source, solely based on the fact that it's easier to read. Sure, if you're familiar with the edit and have done it before you can decompile and search for whatever key terms you wish and then make the "-0x3" edits. But by viewing the source, it's pretty obvious on where/how to make the edits.
-mission accomplished!
-isn't that how things always work out?

great, thank you very much! i hate having to reapply my theme edits with every rom flash. this is very helpful.
one more question...
will this edit "stick" in my local cyanogenmod workspace after a repo sync, or, would that require setting up my own github repo to view changes to cm framework vs my edited framework? please don't feel obligated to give an in depth explanation if that's what this question requires. I'd just like to know if my thinking is on the right path. thank you!



Sent from my Galaxy Nexus using xda premium
It should, or at least it does with aosp and repo. Unless the package is updated.....(I think...:eek:)
ahh that would make sense, but cm is built off asop and your last transparancy mod worked on cm9
Yes, CM is based off aosp but I can assure you there are some significant differences...at least for gingerbread. I would anticipate there are less differences between CM9 and ics at this stage of the game. I didn't know that my last one worked on CM9.....my guess is that whatever changed in 4.0.3 hasn't made it's way into CM9's source.
did you noticed dialer status bar isn't black?..How can l fix taht?Thanks!

No, I didn't notice anything....I have no way to view what I built! Lol...

Well, I'm not exactly sure off the top of my head. Does anyone know if my previous SystemUI had a translucent statusbar? I should be able to figure it out pretty easily if it was...
 
  • Like
Reactions: allofusjw

Bluediss

Senior Member
Jan 24, 2006
122
6
Schiedam
Thanks for the info. You really got me interested in this stuff!

For Windows users (like me), I believe somebody posted a VMWare images ready to do these kind of things.

Might give it a try when I'm back from holiday.

Sent from my Galaxy Nexus using xda premium
 

Top Liked Posts

  • There are no posts matching your filters.
  • 14
    Disclaimer: I do not have any formal training with anything I'm covering here and it's entirely possible….dare I say probable…that I may state something incorrectly either partially or wholly (hopefully I’m not that far off). So this is just how I've come to understand things from my own self study as well as staring smali for countless hours (although I have to say the more I learn, the more I learn I don't know :eek:). Hopefully there’s another beginning android hobbyist that finds this useful and/or inspires him to try some new things.

    **These instructions apply to Mac and Linux only, due to the fact we're working with aosp source and building in windows is not supported at this time**

    Enabling Translucency
    I approached this a little different than I’m used to seeing in terms of a mod. Normally we start off by decompiling an apk and go from there. Since this is for an aosp rom, we have easy access to the source code and can make changes there. Now, I don’t proclaim to know java. I have very, very little programming experience, and even that is limited to an introductory C++ class I just took. But even without knowing java, you’ll have a much easier time reading java source code than you will smali. So, yes, you need to sync with aosp to use this guide. It's not hard, and there's good instructions HERE.
    As an aside, my personal opinion is that anyone that a true-blue xda'er should have aosp syned...even if you have no intention of building roms. It's like an android encyclopedia. I've learned A TON just from poking around/reading though some parts. I probably comprehend < 10%, but it's easily been one of the most beneficial things I've done to further my understanding.​

    So now you have the source code. :) What we need to change is the PixelFormat for the statusbar. In froyo and gingerbread this was done in StatusBarService. It’s been changed a little in ics, although the edits remain in SystemUI. The two files I changed were StatusBar and PhoneStatusBar.

    Starting in the root of your aosp working directory, the absolute path of the first file I edited is
    Code:
    frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/StatusBar.java
    Open this in a good text editor. The PixelFormat parameter is specified in the getStatusBarHeight function. In the version I edited it is easily found on lne 124. Just search for “PixelFormat” and you’ll find it. (ignore the search return that’s part of the import statement at the beginning of the file) As soon as you get there you’ll see the problem. PixelFormat.OPAQUE. Replace OPAQUE with TRANSLUCENT. Save

    Next you make similar edit in PhoneStatusBar.java. From the same directory that StatusBar.java is in, go to the phone directory and open PhoneStatusBar.java in your text editor. Now this file is much, much longer to read through. Rather than doing that (of course you can if you want) just performa search for that same text again “PixelFormat” You’ll get several returns, some of them will already have TRANSLUCENT set.

    BUT...Don’t get carried away and change all the OPAQUE values. One of the search returns will be part of the function getRecentsLayoutParams (starts on line 378). The portion of code that you might be temted to change checks the PixelFormat by way of a boolean test
    Code:
    (opaque ? PixelFormat.OPAQUE : PixelFormat.TRANSLUCENT)
    I left this alone.
    Edit: After reading the entire code a little bit more, I think we could change it to
    Code:
    PixelFormat.TRANSLUCENT
    without any ill effects, although I'm not sure what, if any, additional benefit we'd see. I have not tried.​

    The exact places I did change OPAQUE to TRANSLUCENT were in lines 311, and 481. That’s it for the code portion. Make sure to save your changes. Now go back to the res directory and we need to edit some xml files.

    From the root of the SystemUI directory, open res/values/colors.xml. Find the entry for “status_bar_background” and change it’s value to whatever you want. In mine I’ve set it to “a6000000” which black but 35% translucent. The first 2 characters control the opacity on a scale from 0-255 where 0 is completely transparent and 255 is fully opaque. That value is then stated in hexadecimal format; e.g. 0=00, 255=ff.

    *if you also want a translucent bottom menu bar, it is set in res/layout/navigation_bar.xml. Change the hex value of android:background=”ff000000” to your desired value for opacity.*

    Now you should have all the edits in place for a translucent statusbar. All that’s left is to compile the apk. Before you compile SystemUI, you need to have ran the extract-files script. Only needs to be done once. Connect your phone to the computer(making sure that usb debugging is turned on) then in terminal, starting from the root of your aosp working directory:
    Code:
    cd device/samsung/maguro/
    ./extract-files.sh
    Let the script finish. It will create a new vendor directory in the root of your working directory and copy several files from your phone.

    Now cd back to the root of your working directory and run
    Code:
    . build/envsetup.sh
    Note the period and space before build. This is an important step which initialized the build environment. Several new commands will be available now such as "mm" "mmm" "croot" amongst others. Type "help" (without the quotes) for a full list of the new commands available.

    Next step to build your SystemUI is to run lunch. Just type "lunch" and press enter:
    Code:
    pendo:master pendo$ lunch
    
    You're building on Darwin
    
    Lunch menu... pick a combo:
         1. full-eng
         2. full_x86-eng
         3. vbox_x86-eng
         4. full_stingray-userdebug
         5. full_wingray-userdebug
         6. full_crespo-userdebug
         7. full_crespo4g-userdebug
         8. full_maguro-userdebug
         9. full_toro-userdebug
         10. full_panda-eng
    
    Which would you like? [full-eng]

    It will list the available builds. Number 8 should be for maguro-user debug. Select it and press enter. And lastly, type
    Code:
    make SystemUI

    It will take several minutes to build, especially the first time. But once it’s done, your new SystemUI will be in out/target/product/maguro/system/app/SystemUI.apk.
    6
    Here is a SystemUI that I built that has a translucent statusbar. It also has a circle battery mod I recently made in ics blue. This was built on 4.0.3 sources.

    Here's a flashable zip:

    TransStatusbar-SmoothCircleMod_4.0.3.maguro-signed.zip
    6
    Smali edits

    OK...here's some instructions as a smali edit. Things to keep in mind here....smali is, for me at least, challenging to follow and fully comprehend what you are looking at. Also, this set of instructions is based off of working on a SystemUI for 4.0.3. My goal here is to give precise enough steps so that the right edits are made, while also trying to be "universal" in that this will hopefully work on other SystemUI's going forward. If we discover that tweaks need to be made, I'll edit this list.

    Pixel format is stored as a integer constant. To review, here are some values of interest for this thread. (blue text is value)
    • OPAQUE(no alpha bit): -0x1
    • RGB_565(also no alpha): 0x4
    • TRANSLUCENT(many alpha bits) -0x3
    First file to edit is StatusBar.smali. Open in your preferred text editor and search for this text:
    Code:
    Landroid/view/WindowManager$LayoutParams;-><init>(IIIII)V
    Go to the line above it and change the last value from -0x1 to -0x3.


    Next open PhoneStatusBar.smali. Search for this text:
    Code:
    const v4, 0x4800068
    replace the 2 lines underneath with this:
    Code:
    const/4 v5, -0x3
    
    move v2, v1


    Next search for this text:
    Code:
    Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mPixelFormat:I
    Once again we're going to edit the line above and change the last value to -0x3.


    You can see the pattern of changing -0x1 to -0x3. However, you may notice that it's a 0x4 that your're replacing. You won't ever be replacing anything vastly different. So when following these instructions if you find that you're replacing something other than -0x1 or a 0x4, that should raise a red flag that it might not be the right thing to edit. *The first edit in PhoneStatusBar is a little different than the others and I think there is more than one way to do that, but this is how I did.

    You may notice that I haven't listed the entire line for the search criteria ....this is because there may be differences with the local variables associated. Your file may be assigning the pixel format to local variable v8 and the next guys v9. *The first search in PhoneStatusBar I did give the whole line.

    That's it for smali edits. Now you still have the res directory edits. With an aosp based rom, you need to change the hex value for status_bar_background in drawables.xml. Also, you now have translucency available for the softkey area.....it's background is set via hex color in res/layout/navigation_bar.xml.
    2
    I've been wanting a smooth circle battery mod! Only problem is, on Roman's AOKP rom flashing it makes the statusbar and virtual buttons disappear :( Happens with the other circle battery mod as well :/
    My bad, I left out one VERY IMPORTANT detail. Whether or not you build your own or use the one I compiled it is a deodexed SystemUI.apk. If you previously had an odexed SystemUI then you MUST delete SystemUI.odex

    I have been told that my apk works with this 4.0.3 IML74K rom.
    Same here, soft buttons and status bar dissapear

    Sent from my Galaxy Nexus using xda premium
    Please see above note.

    Also, these instructions as well as the provided apk DO NOT have Paul's softkey mod. I'm hesitant to say this, but I am tinkering a bit trying to replicate the edits in source form. I know I posted a SystemUI that had those edits for 4.0.2 but I did them as smali edits. I wish to add them to the source code which would make it much easier for updates. But I have no progress report on that. The *main* purpose of this thread was informational. I wanted to offer some help for someone to either do it themselves, or help someone who has the capacity/desire to update the apk as needed.
    awesome instructions im going to download asop on my linux pc tonight and have at the systemui on boxing day or something. ive got the softkeys themed but thats as far as i can get without a ton of fc's when decompiling and editing xml's and some pngs, so hopefully this will help me learn a bit more.

    thanks for the awesome write up!

    edit: i get the same problem as the above people when flashing this on the rom in my sig
    This is built purely from aosp sources, not CM. I would not expect what I compiled to work on anything other than aosp 4.0.3. However, the information in the first post should help you make a translucent statusbar if the CM9 source code is available somewhere.


    pendo, thanks so much for this. its very educational and I appreciate the time you took to help all of us.
    my question is...
    in the cyanogenmod source instead of stating "opaque" or "translucent" it shows PixelFormat.RGB_565 which (I think) means it's 16bit and opaque. do you think it would have to then be changed to ARGB_8888, or something different? here's the link to the info I found: http://developer.android.com/reference/android/graphics/Bitmap.Config.html
    I'm just unsure how to apply this info.
    thanks man, love your work, glad to see you here!

    Sent from my Galaxy Nexus using xda premium
    Yes, I actually had some information regarding that in the first draft I had made, however I was getting concerned with the length as it was so I trimmed it down a bit.

    Yes, RGB_565 is 16bit opaque. You should just change it to TRANSLUCENT. I've done this before, but in smali. One thing that I haven't figured out is why it's called RGBA vs ARGB. The hex values are done in ARGB. Go figure.:confused:

    Also, here's some info that will help when trying to do this edit backwards, aka decompiling with apktool ;) Obviously when aapt compiles it doesn't store the code as TRANSLUCENT....but here's some of the values that it does store of what you'll most commonly see:

    TRANSLUCENT = -0x3
    OPAQUE = 0x1
    RGBA_8888 = 0x1
    RGBX_8888 = 0x2
    RGB_565 = 0x4
    1
    Here you go ;) mind of small but not a problem at all.

    Sent from my Galaxy Nexus using xda premium