Transparent Status Bar--Instructions for DIY

Search This thread

jonata

Senior Member
Jul 14, 2007
2,101
116
Casette d'Ete
yeah, here's some help....decompile with apktool, and open res/values/drawables.xml and then set the value for status_bar_background to "cc000000"

**how to convert % to hex value**
Opacity is measured on a scale from 0(invisible) to 255(fully opaque). In this specific case there you need 4 values, 3 for the RGB combination and then a fourth that's for the overal opacity of the combined colors. The follow an ARGB arrangement (Alpha, Red, Green, Blue). Each value is a 2 digit hex, so you'll have 8 total alphanumeric values. So to get 80%--> .8 x 255=204. There's plenty of hex converters available for you to make it easy. Plug in 204 as your decimal number and it will tell you that "cc" is the hex equivalent. So "cc000000" would be black that's 20% transparent or 80% opaque, however you wish to call it.

ok,
downloaded apktools (windows) and exctracted to a folder.
then open terminal, go to folder and digit apktoll ...
but this is what I see : "java is not a internal or esternal command ...." where I?m in wrong ?
Like decompile systemUI but I've this error ...
tks for help Pendo
 

fatsix

Senior Member
Oct 25, 2010
155
36
My bad, you're right I didn't touch drawables.xml, duh. Ok, here's another. As far as the handing pressed image...I'm not sure what's going on there. I don't recall anyone mentioning it before. So it just stays highlighted? Is it otherwise fully functional?

It has a low glow that sticks. Kinda weird, but it goes away. I didnt have this issue on the ones i modified previously, it might be modifications the dev has made to the glow speed. The newest one does not effect the navigation bar at all, i edited the xml as well. Solid black.
 
Last edited:

Schoat333

Senior Member
Sep 3, 2010
339
94
NE Ohio
I was able to get the navigation bar transparent on gummy 5.0, but I get the problem where the wallpapaer doesn't go all the way down, it only goes half way behing the softkeys.

When I was messing around, I had a bad systemUI that FC'd. When that happened, my wallpapaer did the same thing. I tried several differnt pictures, and all had the same result, so its not the res.

I think it may be a setting for max wallpapaer height that needs changed. Anyone have any ideas where that would be?
 

jonata

Senior Member
Jul 14, 2007
2,101
116
Casette d'Ete
@Pendo :
resolved all my problems !!!
tks very much ...
another question :
I want 100% trasparent statusbar :
decompile systemui and then edit the xml file, set the value for status_bar_background to "ffffffff"
right ?

tks mate
 
Last edited:

fatsix

Senior Member
Oct 25, 2010
155
36
@Pendo :
resolved all my problems !!!
tks very much ...
another question :
I want 100% trasparent statusbar :
decompile systemui and then edit the xml file, set the value for status_bar_background to "ffffffff"
right ?

tks mate
smali edits to enable. XML to set the color. ffffffff will be solid white.. you need to change the first two digits.



Sent from my GalaxyNexus using XDA App
 
Last edited:

jonata

Senior Member
Jul 14, 2007
2,101
116
Casette d'Ete
smali edits to enable. XML to set the color. ffffffff will be solid white.. you need to change the first two digits.



Sent from my GalaxyNexus using XDA App

sorry but don't understand .... :eek:
I edit this :
res/values/drawables.xml
and then set the value for status_bar_background to "ff000000" (orignal value was "00000000")
also in this way trasparent no 100%
there are other files to edit ?
tks
 

ciscogee

Senior Member
Aug 13, 2011
891
192
Wa State
Hi all. Looking good on mod. I want to try and port the softkey mods on my froyo leaked sch i400. We don't have a systemui. Apks. So I'm sure they would be in framework/twframework. Any ideas on if i can get it to port.

Sent from my SCH-I400 using xda premium
 

fatsix

Senior Member
Oct 25, 2010
155
36
sorry but don't understand .... :eek:
I edit this :
res/values/drawables.xml
and then set the value for status_bar_background to "ff000000" (orignal value was "00000000")
also in this way trasparent no 100%
there are other files to edit ?
tks
ff is 100% opaque. 00 is 0% opaque. 31 is 20% opaque. CC is 80% opaque.
You hushed edited it from being completely transparent to completely solid black.

Sent from my Galaxy Nexus using XDA App
 

jgrimberg1979

Senior Member
May 16, 2010
1,002
226
D.C
Can someone please shed some light on my issue. I can't seem to make the navigationbar transparent for the life of me. I have got the transparent statusbar up and running but I don't know how to change the nav bar to transparent. I have already made the edits for the navbar in navigationbar.XML for transparency but I still have the black bar no matter what launcher I use. Help would be great thanks



Galaxy Nexus
twitter = @jtgr6
 

AlisCZ

Member
Dec 17, 2010
36
9
Anyone got this working on AOKP (build 17)? I tried it trough the smali edit just like in the #3 post, but statusbar and soft keys disappeared.

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

AOKP should be deodexed. I'm confused.
 

fatsix

Senior Member
Oct 25, 2010
155
36
I believe I have found the answer to the half transparency. I need to do more testing first.
 
  • Like
Reactions: aras1

muneho

Member
Nov 18, 2010
5
0
I use AOKP build 19.
I tried smali and xml edit according to post #3.
Then status bar became translucent, but navigation bar still black.
Anyone help ?
 

aras1

Senior Member
Apr 20, 2010
138
0
i can't find the files from post #2

where is statusbar.smali , i have searched everywhere but couldn't find it
 

fatsix

Senior Member
Oct 25, 2010
155
36
The problem with the half black, half transparent navigation bar is the launcher. The stock launcher, CND Launcher, and Trebuchet do not modify the wallpaper or screen size. However Nova Launcher does. SO this Full transparent status bar and navigation bar only works with Nova Launcher. I have not had time to look into this. If someone knows what Nova Launcher does to modify the screen/wallpaper size, this would be an easy mod to the other launchers.
 

kgbrown247

Senior Member
Dec 15, 2008
204
12
Okc, OK
The problem with the half black, half transparent navigation bar is the launcher. The stock launcher, CND Launcher, and Trebuchet do not modify the wallpaper or screen size. However Nova Launcher does. SO this Full transparent status bar and navigation bar only works with Nova Launcher. I have not had time to look into this. If someone knows what Nova Launcher does to modify the screen/wallpaper size, this would be an easy mod to the other launchers.

Do the smali edits posted throughout this thread should theoretically work since I only use nova? I only run tranquil ice. Will give it a shot. Seen your work on rootz but my rom is incompatible


Sent from a full AOSP GNex via Tap
 

Schoat333

Senior Member
Sep 3, 2010
339
94
NE Ohio
The problem with the half black, half transparent navigation bar is the launcher. The stock launcher, CND Launcher, and Trebuchet do not modify the wallpaper or screen size. However Nova Launcher does. SO this Full transparent status bar and navigation bar only works with Nova Launcher. I have not had time to look into this. If someone knows what Nova Launcher does to modify the screen/wallpaper size, this would be an easy mod to the other launchers.

I found this in Gummy launcher as well, wich makes sense because it is based on Trebuchet.

2nd edit

OK I'm losing it. I changed the systemUI and not the Launcher....
 
Last edited:

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