[HTC EVO 3D] j4n87:
As many GSM Users may noticed ther is not much development in the GSM section yet - hope it's just because the kernel sources aren't released yet..

So there was still missing a extended notification bar for GSM Users.

I tried to get the extended Quicksettings from a cdma rom and some themes...but everytime i got bootloops, or my statusbar was missing.

Seems, that the gsm and cdma framework is a bit different...

After much blabla, here my guide, how to add your own extenden quicksettings bar yourself.

I've tested it on mdj's GSM virtuous rom..so if you want, you can just grab it and press the Thanks button =P.

May work also on other gsm roms.

Before trying this out, pls ensure, you`ve got a working cwm backup, I'm not responsible if you lose any data, because you didn't make one.

This is my Quicksettingsbar

..so let's begin.

Requirements:

apktool for decompiling and compiling:

Download

notepad++ for comparing files

Download

7Zip or something similar

Download

Steps to get your extendend Quicksettingbar

1. Extract the downloaded apktool files to the same folder

2. Pull required files from device

located under system/framework

com.htc.resources.apk

located under system/app

SystemUI.apk

Put it to the extracted apktool files:

3. Install ressources.apk

- open the cmd and browse to the apktool folder

- type:

in cmd

4.Decompiling

- type:

in cmd

5. Edit quick_settings.xml

It's located unter SystemUI/res/layout:

..and it should look like:

<?xml version="1.0" encoding="utf-8"?>
<com.android.systemui.statusbar.preference.QuickSettings android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<TextView android:textAppearance="?android:textAppearanceLarge" android:textSize="@dimen/status_bar_title_font_size" android:textColor="#ffffffff" android:gravity="center_vertical" android:id="@id/title_bar" android:background="@drawable/status_bar_header_background" android:paddingLeft="9.0sp" android:layout_width="fill_parent" android:layout_height="wrap_content" android:scaleType="fitXY" android:text="@string/status_bar_quick_settings" />
<ScrollView android:id="@id/scroll" android:fadingEdge="none" android:layout_width="fill_parent" android:layout_height="fill_parent">
<LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content">
<include android:id="@id/volume" layout="@layout/status_bar_preference" />
<include android:id="@id/brightness" layout="@layout/status_bar_preference" />
<include android:id="@id/rotation" layout="@layout/status_bar_preference" />
<include android:id="@id/wifi" layout="@layout/status_bar_preference" />
<include android:id="@id/hotspot" layout="@layout/status_bar_preference" />
<include android:id="@id/network" layout="@layout/status_bar_preference" />
<include android:id="@id/bluetooth" layout="@layout/status_bar_preference" />
<include android:id="@id/gps" layout="@layout/status_bar_preference" />
<include android:id="@id/settings" layout="@layout/status_bar_preference" />
<include android:id="@id/task_manager" layout="@layout/status_bar_preference" />
</LinearLayout>
</ScrollView>
</com.android.systemui.statusbar.preference.QuickSettings>

Please copy the whole code and overwrite it with your existing one.

You can rearrange the different settings like you want.

But DON'T delete a line!

6. The funny part, edit the f** smali file, costs me days! =D

Download the attached Quicksettings.zip and extract it somewhere, and open it with noetpad++.

Now navigate to your decompiled SystemUI.apk:

...and open the Quicksettings.smali here in notepad too:

Click on Addons->Compare->Compare: (Don't know the exact translation)

..after then it should look like this:

Explanations:

notepad++ compares both files and marks the differences, what we have to do know, is to go trough this differences and adapt our file with mine.

But attention!

Don' adapt the ressource id's, how ressource ids looks like is shown in the picture. If you change them, it won't work and will cause some bootloops and a missing statusbar.

The ressource ids are listed in the public.xml (.../SystemUI/res/values) and have to match with the ids in the code.

One example:

Let's search for an ID, to do this double click on an id, press Ctrl+Shift+F, browse to ".../SystemUI", then search:

As you can see, the id from your quicksettings smali is linked to other files, so changing them isn't good thing :)

So lets see for important differences, you need to change:

NOT THE ID's =P

You need really to change everything EXCEPT the Ressource ID's

Breaks and different row numbers are irrelevant.

After you are ready, save the file and make the diff again:

Addons->Compare->Compare

...to ensure, you got all changes and ONLY the Ressource ID's are different.

6. Compiling:

-Type:

in cmd

8.7zip/Winrar

-open both, the orignal and the new SystemUI.apk's and drag&drop the classes.dex from SystemUI_new to SystemUI and overwrite it

Do the same with the the file quick_settings.xml located under .../SystemUI/res/layout

Now transfer the SysytemUI.apk back to your device.

Paste it, i have used root explorer, in /system and change the permissons to 644 (just like all in system/app).

After setting the correct permission, overwrite the original SystemUI.apk in System/app with yours.

Or just push it via ab in /system/app

Reboot, done:

Pls don't post here, if it don't work for the first time..just try it a second time..and perhaps a third time.

Believe me, to understand how this all works and get all this working I spend a lot of time.

I've got no experience in decompiling and smali editing before, okay, I'm a c# and c++ coder, so perhaps it was a bit easier to me...what i want to say with that DON'T give up, when it doesnt work at the first go (;