[Guide][How to get Fmd L Panel]

Search This thread

Rushi Pawar

Member
Mar 9, 2015
20
2
Kolhapur
Help ....See Ss

how to fix this .... how to make it transparent and wifi and bt only looks like lollipop others are still black...help
 

Attachments

  • Screenshot_2016-05-21-16-12-33.png
    Screenshot_2016-05-21-16-12-33.png
    94.4 KB · Views: 302
  • Screenshot_2016-05-21-16-12-09.png
    Screenshot_2016-05-21-16-12-09.png
    99.1 KB · Views: 295
  • Screenshot_2016-05-21-16-12-16.png
    Screenshot_2016-05-21-16-12-16.png
    118.2 KB · Views: 306

PULKIT SINGH

Senior Member
Feb 18, 2016
206
66
Delhi
This is a guide by Fmd devs to get L panel in kitkat and jellybean devics...

It is time consuming and u need to be very patient.

It isn't for extreme noob but i shall try my best understand u in all possible ways :D

Take a backup of ur current systemUI.apk before following it


if this guide is already on xda, then let me know i'll close the thread :)

Let's start now

Things u need -

Apktool 1.5.2
SystemUI.apk
Notepad++
Brain.jar :p

Step 1:

- Decomile ur systemUI.apk (i m not gonna explain u how to decomile and recomile , there are already many guides for that )

Download systemuiFiles.zip from attachments, extract it merge the files to respective folders

- Go res/values
open ids.xml
Copy the codes below and paste them before </resources>

Code:
    <item type="id" name="recents_clear">false</item>
    <item type="id" name="LayE2">false</item>
    <item type="id" name="owner">false</item>
    <item type="id" name="photo_picker_cover">false</item>
    <item type="id" name="owner_cover">false</item>
    <item type="id" name="name_field_cover">false</item>
    <item type="id" name="name_edit_cover">false</item>
    <item type="id" name="image_cover">false</item>
    <item type="id" name="photo_picker">false</item>
    <item type="id" name="name_field">false</item>
    <item type="id" name="name_edit">false</item>
    <item type="id" name="colored_bar">false</item>
    <item type="id" name="thumbnail_border">false</item>

Save the xml

- Open dimens.xml search for <dimen name="quick_settings_cell_height"> change its value to 90.0dip

Also search for <dimen name="quick_settings_cell_gap"> and replace its value with 0.0dip

Then save it

- Now open styles.xml

Find this -

Code:
    <style name="TextAppearance.StatusBar.Expanded.Clock" parent="@style/TextAppearance.StatusBar.Expanded">

Change it to make it like -

Code:
    <style name="TextAppearance.StatusBar.Expanded.Clock" parent="@style/TextAppearance.StatusBar.Expanded">
        <item name="android:textSize">14.0sp</item>
        <item name="android:textStyle">normal</item>
        <item name="android:textColor">#ffffffff</item>
        <item name="android:fontFamily">sans-serif-medium</item>
    </style>

Now find -

Code:
    <style name="TextAppearance.StatusBar.Expanded.Date" parent="@style/TextAppearance.StatusBar.Expanded">

Change it to become like -

Code:
    <style name="TextAppearance.StatusBar.Expanded.Date" parent="@style/TextAppearance.StatusBar.Expanded">
        <item name="android:textSize">14.0sp</item>
        <item name="android:textStyle">normal</item>
        <item name="android:textColor">#b2ffffff</item>
    </style>

Add the codes below at the bottom before </resources>

Code:
    <style name="TextAppearance.QuickSettings.Toggle" parent="@style/TextAppearance.QuickSettings">
        <item name="android:textSize">12.0sp</item>
        <item name="android:textStyle">normal</item>
        <item name="android:textColor">#b3ffffff</item>
        <item name="android:fontFamily">sans-serif-regular-systemui</item>
    </style>
    <style name="Theme.Lalalee" parent="@*android:style/Theme.Holo.Light.Dialog">
        <item name="android:windowBackground">@*android:color/transparent</item>
        <item name="android:windowNoTitle">true</item>
    </style>

Done Now save the xml


- Open arrays.xml

Add these codes at the bottom before</resources>
Code:
    <integer-array name="batterymeter_color_levels">
        <item>4</item>
        <item>15</item>
        <item>100</item>
    </integer-array>
    <array name="batterymeter_color_values">
        <item>#ffff3300</item>
        <item>#ffff3300</item>
        <item>#ffffffff</item>
    </array>
    <integer-array name="batterymeter_bolt_points">
        <item>73</item>
        <item>0</item>
        <item>392</item>
        <item>0</item>
        <item>201</item>
        <item>259</item>
        <item>442</item>
        <item>259</item>
        <item>4</item>
        <item>703</item>
        <item>157</item>
        <item>334</item>
        <item>0</item>
        <item>334</item>
    </integer-array>

Save arrays.xml

Search for them before adding, if these are already there, then skip this process...

- Open colors.xml

Copy the codes below and paste them before </resources>

Code:
    <color name="qset_text_color_off">#b3ffffff</color>
    <color name="qset_text_color_on">#b3ffffff</color>
    <color name="qs_tile_normal">#ff263238</color>
    <color name="batterymeter_charge_color">@android:color/white</color>
    <color name="batterymeter_bolt_color">#b2000000</color>

Before doing this, search for them seperately , u must not add them twice.. If u find them, change the hex code only..
Save it...

- Open strings.xml
Add the codes below before </resources>
Code:
    <string name="battery_meter_very_low_overlay_symbol">!</string>

Save the xml
Skip it if it is already there..

- Go back and open AndroidManifest.xml

Paste these codes below at the bottom before </application>

Code:
        <activity android:theme="@style/Theme.Lalalee" android:name="com.android.settings.Profile">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
            </intent-filter>
        </activity>

Save the xml

- Now go to smali/com/android/systemui
Open SystemUIService.smali
Copy the codes below and paste them after #virtual methods
Don't forget to add 1 gap after .end method

Code:
.method public FMDProfPic(Landroid/view/View;)V
    .locals 3
    .parameter "v"

    .prologue
    .line 2431
    new-instance v0, Landroid/content/Intent;

    invoke-direct {v0}, Landroid/content/Intent;-><init>()V

    .line 2432
    const-string v1, "com.android.systemui"

    const-string v2, "com.android.settings.Profile"

    invoke-virtual {v0, v1, v2}, Landroid/content/Intent;->setClassName(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;

    const/high16 v2, 0x1000

    invoke-virtual {v0, v2}, Landroid/content/Intent;->setFlags(I)Landroid/content/Intent;

    move-result-object v0

    .line 2433
    invoke-virtual {p0, v0}, Landroid/content/Context;->startActivity(Landroid/content/Intent;)V

    const-string v1, "statusbar"

    invoke-virtual {p0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Landroid/app/StatusBarManager;

    invoke-virtual {v0}, Landroid/app/StatusBarManager;->collapsePanels()V

    .line 1720
    return-void
.end method

Done Step 1, u can recompile systemui apk

Wait Wait!!!

If u're a KitKat user, u may get compiling error "no resource found @id/header_settings_button" something like that.. Then follow step 2.. If u hve succefully recompiled then skip that step...

Step 2:

- Download For_KitKat.zip from attachments and copy the files to respective folders

- Navigate to res/values , open ids.xml add the code below before </resources>

Code:
<item type="id" name="header_settings_button">false</item>

Done, Recompile ur systemui...
now u can proceed to Step 3 :D

Step 3:

This step is for Id replacement, u must hve heard about it ;)

- Decompile newly compiled systemUI.apk

- Open LBatteryBar$1.smali in /smali/com/fmd/btn

Search
0x7f020145
replace with the value of
<public type="drawable" name="stat_sys_battery_charge" from your public.xml

Search
0x7f02013c
replace with the value of
<public type="drawable" name="stat_sys_battery" from your public.xml

- Open SlideBrightness.smali in /smali/in/jmkl/dcsms/statusbargreper

Search
0x7f020263
replace with the value of
<public type="drawable" name="progress_horizontal" from your public.xml

Search
0x7f020270
replace with the value of
<public type="drawable" name="thumb" from your public.xml

- Open Profile.smali in /smali/com/android/settings

search code and replace with your public.xml

0x7f04004d = <public type="layout" name="profile_cover"

0x7f08012b = <public type="id" name="photo_picker_cover"

0x7f08012c = <public type="id" name="owner_cover"

0x7f08012d = <public type="id" name="name_field_cover"

0x7f08012e = <public type="id" name="name_edit_cover"

0x7f08012f = <public type="id" name="image_cover"

0x7f020264 = <public type="drawable" name="fmd_me"

- Open ProfilePicture$1.smali in /smali/com/android/settings

search code and replace with your public.xml

0x7f020264 = <public type="drawable" name="fmd_me"

- Open ProfilePicture.smali

Search code and replace with your public.xml

0x7f08000b = <public type="id" name="image"

0x7f020264 = <public type="drawable" name="fmd_me"

Done!!

Now ur Systemui is of FMD panel but the wifi and bt toggles are two, one is that of fmd and 2nd one is of ur stock.... :angel:
So, follow next step...


Step 4:

Open Quicksettings.smali in smali/com/android/systemui/statusbar/phone

For Jellybean -

To remove bluetooth toggle find this-

Code:
bluetoothTile:Lcom/android/systemui/statusbar/phone/QuickSettingsTileView;

then scroll until you find
Code:
Landroid/view/ViewGroup;->addView(Landroid/view/View;)V

delete all that including the invoke
(note: just scroll dont use search button so you won't
get confused)

For data connection toggle find-
Code:
dataconnectiontile:/Lcom/android/systemui/phone/Quicksettingstileview

then scroll until you find this

Code:
   invoke-virtual {v0, v7}, Landroid/view/ViewGroup;->addView(Landroid/view/View;)V

Delete it..

now just search for other tiles that you want to remove in the quicksettings..

For Kitkat-

Copy the line below search for it

Code:
.method private addAudioProfileTile(Landroid/view/ViewGroup;Landroid/view/LayoutInflater;)V

that is the tile of audio profile if you want to remove it from your panel then scroll find this in the method:

Code:
Landroid/view/ViewGroup;->addView(Landroid/view/View;)V

delete that whole line including the .line at the top of it
also delete the gaps because there must be only 1 gap


if you want to delete wifi tile from your panel
then search:

Code:
.method private addWifiTile(Landroid/view/ViewGroup;Landroid/view/LayoutInflater;)V

that is the tile of wifi if you want to remove it from your panel then just find again the this line in the method

Code:
Landroid/view/ViewGroup;->addView(Landroid/view/View;)V

delete that whole line including the .line at the top of it

Do it with all the toggles which u wanna remove ;)

This step is slightly confusing, just skip it if u r not getting :)

Step 5:

Now What! Recompile ur systemui
Patch ur services.jar, yes! U have edited Androidmanifest.xml , so u gotta sign it with custom signature
Don't know how to patch services.jar.. Just search on XDA, there are many guides :p

Now make flashable zip of systemUI.apk and flash it.

SystemUi force closed , same as mine! :( Don't Worry Follow next step

Step 6:

Download fix.zip from attachments below.. Copy png to res/drawable-hdpi folder

Recompile ur systemui.apk and again decomile it

Open SignalToggle in /smali/com/fmd/qset

find 0x7f0201f3
replace with
<public type="drawable" name="stat_sys_signal_null"
from your public.xml

Ah! Done Now. Recompile ur systemui and flash it.. Enjoy

Credits-

Fmd Devs
Klark Luis Peralta
Jeff Rivera
Aljhun Bumaya
b16h22
Maaadr

i m not so cheap to take credit only for sharing it :p
Just Hit Thank you button if i helped u in anyway :D
its good
but i cant find any of xml file in my system ui like i dont have array.xml,dimens.xml,styls.xml
can you provide a system ui apk for galaxy s dous 7562 with cm 11 installed i can pay 1000 rs for that
 

zhaozihanzzh

Senior Member
its good
but i cant find any of xml file in my system ui like i dont have array.xml,dimens.xml,styls.xml
can you provide a system ui apk for galaxy s dous 7562 with cm 11 installed i can pay 1000 rs for that

You should decomplie systemui.apk,not unzip it.

Android小楼阁-QQ群 439637151
来自搭载Android 2.3 GingerBread的华为Y220-T10
 

myrxda

Senior Member
Jul 23, 2014
75
6
..\3-Out\SystemUI.apk\smali\android\widget\CircleDrawable.smali[227,4] Error for input '.parameter': Invalid directive
..\3-Out\SystemUI.apk\smali\android\widget\CircleDrawable.smali[227,15] mismatched input '"bitmap"' expecting END_METHOD_DIRECTIVE
..\3-Out\SystemUI.apk\smali\android\widget\CircleDrawable.smali[415,4] Error for input '.parameter': Invalid directive
..\3-Out\SystemUI.apk\smali\android\widget\CircleDrawable.smali[415,15] mismatched input '"drawable"' expecting END_METHOD_DIRECTIVE
..\3-Out\SystemUI.apk\smali\android\widget\CircleDrawable.smali[521,4] Error for input '.parameter': Invalid directive
..\3-Out\SystemUI.apk\smali\android\widget\CircleDrawable.smali[521,15] mismatched input '"bitmap"' expecting END_METHOD_DIRECTIVE
..\3-Out\SystemUI.apk\smali\android\widget\CircleDrawable.smali[544,4] Error for input '.parameter': Invalid directive
..\3-Out\SystemUI.apk\smali\android\widget\CircleDrawable.smali[544,15] mismatched input '"drawable"' expecting END_METHOD_DIRECTIVE
..\3-Out\SystemUI.apk\smali\android\widget\CircleDrawable.smali[849,15] no viable alternative at input 'dx'
..\3-Out\SystemUI.apk\smali\android\widget\CircleDrawable.smali[853,15] no viable alternative at input 'dy'
..\3-Out\SystemUI.apk\smali\android\widget\CircleDrawable.smali[896,15] no viable alternative at input 'scale'
..\3-Out\SystemUI.apk\smali\android\widget\CircleDrawable.smali[1325,4] Error for input '.parameter': Invalid directive
..\3-Out\SystemUI.apk\smali\android\widget\CircleDrawable.smali[1325,15] mismatched input '"canvas"' expecting END_METHOD_DIRECTIVE
..\3-Out\SystemUI.apk\smali\android\widget\CircleDrawable.smali[1537,4] Error for input '.parameter': Invalid directive
..\3-Out\SystemUI.apk\smali\android\widget\CircleDrawable.smali[1537,15] mismatched input '"bounds"' expecting END_METHOD_DIRECTIVE
..\3-Out\SystemUI.apk\smali\android\widget\CircleDrawable.smali[1557,4] Error for input '.parameter': Invalid directive
..\3-Out\SystemUI.apk\smali\android\widget\CircleDrawable.smali[1557,15] mismatched input '"state"' expecting END_METHOD_DIRECTIVE
..\3-Out\SystemUI.apk\smali\android\widget\CircleDrawable.smali[1601,4] Error for input '.parameter': Invalid directive
..\3-Out\SystemUI.apk\smali\android\widget\CircleDrawable.smali[1601,15] mismatched input '"alpha"' expecting END_METHOD_DIRECTIVE
..\3-Out\SystemUI.apk\smali\android\widget\CircleDrawable.smali[1618,4] Error for input '.parameter': Invalid directive
..\3-Out\SystemUI.apk\smali\android\widget\CircleDrawable.smali[1618,15] mismatched input '"color"' expecting END_METHOD_DIRECTIVE
..\3-Out\SystemUI.apk\smali\android\widget\CircleDrawable.smali[1635,4] Error for input '.parameter': Invalid directive
..\3-Out\SystemUI.apk\smali\android\widget\CircleDrawable.smali[1635,15] mismatched input '"colors"' expecting END_METHOD_DIRECTIVE
..\3-Out\SystemUI.apk\smali\android\widget\CircleDrawable.smali[1679,4] Error for input '.parameter': Invalid directive
..\3-Out\SystemUI.apk\smali\android\widget\CircleDrawable.smali[1679,15] mismatched input '"width"' expecting END_METHOD_DIRECTIVE
..\3-Out\SystemUI.apk\smali\android\widget\CircleDrawable.smali[1700,4] Error for input '.parameter': Invalid directive
..\3-Out\SystemUI.apk\smali\android\widget\CircleDrawable.smali[1700,15] mismatched input '"cf"' expecting END_METHOD_DIRECTIVE
..\3-Out\SystemUI.apk\smali\android\widget\CircleDrawable.smali[1717,4] Error for input '.parameter': Invalid directive
..\3-Out\SystemUI.apk\smali\android\widget\CircleDrawable.smali[1717,15] mismatched input '"radius"' expecting END_METHOD_DIRECTIVE
..\3-Out\SystemUI.apk\smali\android\widget\CircleDrawable.smali[1729,4] Error for input '.parameter': Invalid directive
..\3-Out\SystemUI.apk\smali\android\widget\CircleDrawable.smali[1729,15] mismatched input '"dither"' expecting END_METHOD_DIRECTIVE
..\3-Out\SystemUI.apk\smali\android\widget\CircleDrawable.smali[1746,4] Error for input '.parameter': Invalid directive
..\3-Out\SystemUI.apk\smali\android\widget\CircleDrawable.smali[1746,15] mismatched input '"filter"' expecting END_METHOD_DIRECTIVE
..\3-Out\SystemUI.apk\smali\android\widget\CircleDrawable.smali[1763,4] Error for input '.parameter': Invalid directive
..\3-Out\SystemUI.apk\smali\android\widget\CircleDrawable.smali[1763,15] mismatched input '"oval"' expecting END_METHOD_DIRECTIVE
..\3-Out\SystemUI.apk\smali\android\widget\CircleDrawable.smali[1775,4] Error for input '.parameter': Invalid directive
..\3-Out\SystemUI.apk\smali\android\widget\CircleDrawable.smali[1775,15] mismatched input '"scaleType"' expecting END_METHOD_DIRECTIVE
Exception in thread "main" brut.androlib.AndrolibException: Could not smali file: android/widget/CircleDrawable.smali
at brut.androlib.src.SmaliBuilder.buildFile(SmaliBuilder.java:71)
at brut.androlib.src.SmaliBuilder.build(SmaliBuilder.java:55)
at brut.androlib.src.SmaliBuilder.build(SmaliBuilder.java:41)
at brut.androlib.Androlib.buildSourcesSmali(Androlib.java:385)
at brut.androlib.Androlib.buildSources(Androlib.java:312)
at brut.androlib.Androlib.build(Androlib.java:295)
at brut.androlib.Androlib.build(Androlib.java:268)
at brut.apktool.Main.cmdBuild(Main.java:225)
at brut.apktool.Main.main(Main.java:84)



this error
 

paeffiong

Senior Member
Sep 23, 2014
194
55
Am also having same errors as posted above

What's the solution.

Apk tool 1.5.2 is not decompiling my system UI apk
 

nhokloz105

Member
Aug 6, 2016
6
3
HCM
SystemUI/res/layout/fmd_quick_settings.xml:19: eror:Eror: No resource found that matches the given name (at 'text' with value '@Striing/bluetooth')
SystemUI/res/layout/gemini_layout_status_bar_expanded.xml:6: eror:Eror: No resource found that matches the given name (at 'layout' with value '@layout/gemini_carrier_lable')
SystemUI/res/layout/gemini_layout_status_bar_expanded.xml:8: eror:Eror: No resource found that matches the given name (at 'id' with value '@id/toolBarSwitchPanel')
SystemUI/res/layout/gemini_layout_status_bar_expanded.xml:9: eror:Eror: No resource found that matches the given name (at 'layout' with value '@layout/toolbar_view')
SystemUI/res/layout/gemini_layout_status_bar_expanded.xml:10: eror:Eror: No resource found that matches the given name (at 'layout' with value '@layout/toolbarbar_indicator')
- what is it??? I can't found resource? can u help me. please.
 

vinaykharayat

Senior Member
Feb 18, 2015
185
35
24
Pithoragarh
I got this error after Step 1
logfile is in attachment

P.S-Ok after googling i found this error came because I was using apktool ver 2.2.2
So I tried using apktool 1.5.2 but got this error
Exception in thread "main" brut.androlib.AndrolibException: Could not decode arsc file
As previously I already modified my framework using apktool ver 2.2.2
So can't you fix this issue
 

Attachments

  • Log.txt
    6 KB · Views: 12
Last edited:

vinaykharayat

Senior Member
Feb 18, 2015
185
35
24
Pithoragarh
hey please upload smali for apktool 2.x.x i am getting error .
Apktool 1.5.2 isnt working (dunno why).
please bother to provide smali for apktool 2.x.x
 

vinaykharayat

Senior Member
Feb 18, 2015
185
35
24
Pithoragarh
Process: com.android.systemui, PID: 3107
java.lang.NullPointerException
at com.android.systemui.statusbar.phone.PhoneStatusBar.makeStatusBarView(PhoneStatusBar.java:494)
at com.android.systemui.statusbar.phone.PhoneStatusBar.addStatusBarWindow(PhoneStatusBar.java:2410)
at com.android.systemui.statusbar.phone.PhoneStatusBar.createAndAddWindows(PhoneStatusBar.java:2384)
at com.android.systemui.statusbar.BaseStatusBar.start(BaseStatusBar.java:258)
at com.android.systemui.statusbar.phone.PhoneStatusBar.start(PhoneStatusBar.java:367)
at com.android.systemui.statusbar.SystemBars.createStatusBarFromConfig(SystemBars.java:106)
at com.android.systemui.statusbar.SystemBars.onNoService(SystemBars.java:58)
at com.android.systemui.statusbar.ServiceMonitor.startService(ServiceMonitor.java:228)
at com.android.systemui.statusbar.ServiceMonitor.access$000(ServiceMonitor.java:49)
at com.android.systemui.statusbar.ServiceMonitor$1.handleMessage(ServiceMonitor.java:73)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5372)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:970)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:786)
at dalvik.system.NativeStart.main(Native Method)

This is my log ,my system ui crashed even after applying last fix ,I also patched services.jar
Actually I got no resource error because some file were missing in my layout folder those files were gemini_carrier_label.xml , toolbarview.xml , toolbar_indicator.xml
to fix missing gemini_carrier_label.xml i renamed carrier label.xml to gemini_carrier_label.xml
but unable to find toolbarview.xml , toolbar_indicator.xml or related file so i removed
<include layout="@layout/toolbar_view" />
<include layout="@layout/toolbar_indicator" />

from gemini_statusbar_expended.xml :( i think this is the reason...some tell me how to fix this....
@itsraj011
 
Last edited:

Khang9

New member
Jan 13, 2020
4
0
help me !!!

:đang khóc::đang khóc::đang khóc::đang khóc:
This is a guide by Fmd devs to get L panel in kitkat and jellybean devics...

It is time consuming and u need to be very patient.

It isn't for extreme noob but i shall try my best understand u in all possible ways :D

Take a backup of ur current systemUI.apk before following it


if this guide is already on xda, then let me know i'll close the thread :)

Let's start now

Things u need -

Apktool 1.5.2
SystemUI.apk
Notepad++
Brain.jar :p

Step 1:

- Decomile ur systemUI.apk (i m not gonna explain u how to decomile and recomile , there are already many guides for that )

Download systemuiFiles.zip from attachments, extract it merge the files to respective folders

- Go res/values
open ids.xml
Copy the codes below and paste them before </resources>

Code:
    <item type="id" name="recents_clear">false</item>
    <item type="id" name="LayE2">false</item>
    <item type="id" name="owner">false</item>
    <item type="id" name="photo_picker_cover">false</item>
    <item type="id" name="owner_cover">false</item>
    <item type="id" name="name_field_cover">false</item>
    <item type="id" name="name_edit_cover">false</item>
    <item type="id" name="image_cover">false</item>
    <item type="id" name="photo_picker">false</item>
    <item type="id" name="name_field">false</item>
    <item type="id" name="name_edit">false</item>
    <item type="id" name="colored_bar">false</item>
    <item type="id" name="thumbnail_border">false</item>

Save the xml

- Open dimens.xml search for <dimen name="quick_settings_cell_height"> change its value to 90.0dip

Also search for <dimen name="quick_settings_cell_gap"> and replace its value with 0.0dip

Then save it

- Now open styles.xml

Find this -

Code:
    <style name="TextAppearance.StatusBar.Expanded.Clock" parent="@style/TextAppearance.StatusBar.Expanded">

Change it to make it like -

Code:
    <style name="TextAppearance.StatusBar.Expanded.Clock" parent="@style/TextAppearance.StatusBar.Expanded">
        <item name="android:textSize">14.0sp</item>
        <item name="android:textStyle">normal</item>
        <item name="android:textColor">#ffffffff</item>
        <item name="android:fontFamily">sans-serif-medium</item>
    </style>

Now find -

Code:
    <style name="TextAppearance.StatusBar.Expanded.Date" parent="@style/TextAppearance.StatusBar.Expanded">

Change it to become like -

Code:
    <style name="TextAppearance.StatusBar.Expanded.Date" parent="@style/TextAppearance.StatusBar.Expanded">
        <item name="android:textSize">14.0sp</item>
        <item name="android:textStyle">normal</item>
        <item name="android:textColor">#b2ffffff</item>
    </style>

Add the codes below at the bottom before </resources>

Code:
    <style name="TextAppearance.QuickSettings.Toggle" parent="@style/TextAppearance.QuickSettings">
        <item name="android:textSize">12.0sp</item>
        <item name="android:textStyle">normal</item>
        <item name="android:textColor">#b3ffffff</item>
        <item name="android:fontFamily">sans-serif-regular-systemui</item>
    </style>
    <style name="Theme.Lalalee" parent="@*android:style/Theme.Holo.Light.Dialog">
        <item name="android:windowBackground">@*android:color/transparent</item>
        <item name="android:windowNoTitle">true</item>
    </style>

Done Now save the xml


- Open arrays.xml

Add these codes at the bottom before</resources>
Code:
    <integer-array name="batterymeter_color_levels">
        <item>4</item>
        <item>15</item>
        <item>100</item>
    </integer-array>
    <array name="batterymeter_color_values">
        <item>#ffff3300</item>
        <item>#ffff3300</item>
        <item>#ffffffff</item>
    </array>
    <integer-array name="batterymeter_bolt_points">
        <item>73</item>
        <item>0</item>
        <item>392</item>
        <item>0</item>
        <item>201</item>
        <item>259</item>
        <item>442</item>
        <item>259</item>
        <item>4</item>
        <item>703</item>
        <item>157</item>
        <item>334</item>
        <item>0</item>
        <item>334</item>
    </integer-array>

Save arrays.xml

Search for them before adding, if these are already there, then skip this process...

- Open colors.xml

Copy the codes below and paste them before </resources>

Code:
    <color name="qset_text_color_off">#b3ffffff</color>
    <color name="qset_text_color_on">#b3ffffff</color>
    <color name="qs_tile_normal">#ff263238</color>
    <color name="batterymeter_charge_color">@android:color/white</color>
    <color name="batterymeter_bolt_color">#b2000000</color>

Before doing this, search for them seperately , u must not add them twice.. If u find them, change the hex code only..
Save it...

- Open strings.xml
Add the codes below before </resources>
Code:
    <string name="battery_meter_very_low_overlay_symbol">!</string>

Save the xml
Skip it if it is already there..

- Go back and open AndroidManifest.xml

Paste these codes below at the bottom before </application>

Code:
        <activity android:theme="@style/Theme.Lalalee" android:name="com.android.settings.Profile">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
            </intent-filter>
        </activity>

Save the xml

- Now go to smali/com/android/systemui
Open SystemUIService.smali
Copy the codes below and paste them after #virtual methods
Don't forget to add 1 gap after .end method

Code:
.method public FMDProfPic(Landroid/view/View;)V
    .locals 3
    .parameter "v"

    .prologue
    .line 2431
    new-instance v0, Landroid/content/Intent;

    invoke-direct {v0}, Landroid/content/Intent;-><init>()V

    .line 2432
    const-string v1, "com.android.systemui"

    const-string v2, "com.android.settings.Profile"

    invoke-virtual {v0, v1, v2}, Landroid/content/Intent;->setClassName(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;

    const/high16 v2, 0x1000

    invoke-virtual {v0, v2}, Landroid/content/Intent;->setFlags(I)Landroid/content/Intent;

    move-result-object v0

    .line 2433
    invoke-virtual {p0, v0}, Landroid/content/Context;->startActivity(Landroid/content/Intent;)V

    const-string v1, "statusbar"

    invoke-virtual {p0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Landroid/app/StatusBarManager;

    invoke-virtual {v0}, Landroid/app/StatusBarManager;->collapsePanels()V

    .line 1720
    return-void
.end method

Done Step 1, u can recompile systemui apk

Wait Wait!!!

If u're a KitKat user, u may get compiling error "no resource found @id/header_settings_button" something like that.. Then follow step 2.. If u hve succefully recompiled then skip that step...

Step 2:

- Download For_KitKat.zip from attachments and copy the files to respective folders

- Navigate to res/values , open ids.xml add the code below before </resources>

Code:
<item type="id" name="header_settings_button">false</item>

Done, Recompile ur systemui...
now u can proceed to Step 3 :D

Step 3:

This step is for Id replacement, u must hve heard about it ;)

- Decompile newly compiled systemUI.apk

- Open LBatteryBar$1.smali in /smali/com/fmd/btn

Search
0x7f020145
replace with the value of
<public type="drawable" name="stat_sys_battery_charge" from your public.xml

Search
0x7f02013c
replace with the value of
<public type="drawable" name="stat_sys_battery" from your public.xml

- Open SlideBrightness.smali in /smali/in/jmkl/dcsms/statusbargreper

Search
0x7f020263
replace with the value of
<public type="drawable" name="progress_horizontal" from your public.xml

Search
0x7f020270
replace with the value of
<public type="drawable" name="thumb" from your public.xml

- Open Profile.smali in /smali/com/android/settings

search code and replace with your public.xml

0x7f04004d = <public type="layout" name="profile_cover"

0x7f08012b = <public type="id" name="photo_picker_cover"

0x7f08012c = <public type="id" name="owner_cover"

0x7f08012d = <public type="id" name="name_field_cover"

0x7f08012e = <public type="id" name="name_edit_cover"

0x7f08012f = <public type="id" name="image_cover"

0x7f020264 = <public type="drawable" name="fmd_me"

- Open ProfilePicture$1.smali in /smali/com/android/settings

search code and replace with your public.xml

0x7f020264 = <public type="drawable" name="fmd_me"

- Open ProfilePicture.smali

Search code and replace with your public.xml

0x7f08000b = <public type="id" name="image"

0x7f020264 = <public type="drawable" name="fmd_me"

Done!!

Now ur Systemui is of FMD panel but the wifi and bt toggles are two, one is that of fmd and 2nd one is of ur stock.... :angel:
So, follow next step...


Step 4:

Open Quicksettings.smali in smali/com/android/systemui/statusbar/phone

For Jellybean -

To remove bluetooth toggle find this-

Code:
bluetoothTile:Lcom/android/systemui/statusbar/phone/QuickSettingsTileView;

then scroll until you find
Code:
Landroid/view/ViewGroup;->addView(Landroid/view/View;)V

delete all that including the invoke
(note: just scroll dont use search button so you won't
get confused)

For data connection toggle find-
Code:
dataconnectiontile:/Lcom/android/systemui/phone/Quicksettingstileview

then scroll until you find this

Code:
   invoke-virtual {v0, v7}, Landroid/view/ViewGroup;->addView(Landroid/view/View;)V

Delete it..

now just search for other tiles that you want to remove in the quicksettings..

For Kitkat-

Copy the line below search for it

Code:
.method private addAudioProfileTile(Landroid/view/ViewGroup;Landroid/view/LayoutInflater;)V

that is the tile of audio profile if you want to remove it from your panel then scroll find this in the method:

Code:
Landroid/view/ViewGroup;->addView(Landroid/view/View;)V

delete that whole line including the .line at the top of it
also delete the gaps because there must be only 1 gap


if you want to delete wifi tile from your panel
then search:

Code:
.method private addWifiTile(Landroid/view/ViewGroup;Landroid/view/LayoutInflater;)V

that is the tile of wifi if you want to remove it from your panel then just find again the this line in the method

Code:
Landroid/view/ViewGroup;->addView(Landroid/view/View;)V

delete that whole line including the .line at the top of it

Do it with all the toggles which u wanna remove ;)

This step is slightly confusing, just skip it if u r not getting :)

Step 5:

Now What! Recompile ur systemui
Patch ur services.jar, yes! U have edited Androidmanifest.xml , so u gotta sign it with custom signature
Don't know how to patch services.jar.. Just search on XDA, there are many guides :p

Now make flashable zip of systemUI.apk and flash it.

SystemUi force closed , same as mine! :( Don't Worry Follow next step

Step 6:

Download fix.zip from attachments below.. Copy png to res/drawable-hdpi folder

Recompile ur systemui.apk and again decomile it

Open SignalToggle in /smali/com/fmd/qset

find 0x7f0201f3
replace with
<public type="drawable" name="stat_sys_signal_null"
from your public.xml

Ah! Done Now. Recompile ur systemui and flash it.. Enjoy

Credits-

Fmd Devs
Klark Luis Peralta
Jeff Rivera
Aljhun Bumaya
b16h22
Maaadr

i m not so cheap to take credit only for sharing it :p
Just Hit Thank you button if i helped u in anyway :D
 

Top Liked Posts

  • There are no posts matching your filters.
  • 29
    This is a guide by Fmd devs to get L panel in kitkat and jellybean devics...

    It is time consuming and u need to be very patient.

    It isn't for extreme noob but i shall try my best understand u in all possible ways :D

    Take a backup of ur current systemUI.apk before following it


    if this guide is already on xda, then let me know i'll close the thread :)

    Let's start now

    Things u need -

    Apktool 1.5.2
    SystemUI.apk
    Notepad++
    Brain.jar :p

    Step 1:

    - Decomile ur systemUI.apk (i m not gonna explain u how to decomile and recomile , there are already many guides for that )

    Download systemuiFiles.zip from attachments, extract it merge the files to respective folders

    - Go res/values
    open ids.xml
    Copy the codes below and paste them before </resources>

    Code:
        <item type="id" name="recents_clear">false</item>
        <item type="id" name="LayE2">false</item>
        <item type="id" name="owner">false</item>
        <item type="id" name="photo_picker_cover">false</item>
        <item type="id" name="owner_cover">false</item>
        <item type="id" name="name_field_cover">false</item>
        <item type="id" name="name_edit_cover">false</item>
        <item type="id" name="image_cover">false</item>
        <item type="id" name="photo_picker">false</item>
        <item type="id" name="name_field">false</item>
        <item type="id" name="name_edit">false</item>
        <item type="id" name="colored_bar">false</item>
        <item type="id" name="thumbnail_border">false</item>

    Save the xml

    - Open dimens.xml search for <dimen name="quick_settings_cell_height"> change its value to 90.0dip

    Also search for <dimen name="quick_settings_cell_gap"> and replace its value with 0.0dip

    Then save it

    - Now open styles.xml

    Find this -

    Code:
        <style name="TextAppearance.StatusBar.Expanded.Clock" parent="@style/TextAppearance.StatusBar.Expanded">

    Change it to make it like -

    Code:
        <style name="TextAppearance.StatusBar.Expanded.Clock" parent="@style/TextAppearance.StatusBar.Expanded">
            <item name="android:textSize">14.0sp</item>
            <item name="android:textStyle">normal</item>
            <item name="android:textColor">#ffffffff</item>
            <item name="android:fontFamily">sans-serif-medium</item>
        </style>

    Now find -

    Code:
        <style name="TextAppearance.StatusBar.Expanded.Date" parent="@style/TextAppearance.StatusBar.Expanded">

    Change it to become like -

    Code:
        <style name="TextAppearance.StatusBar.Expanded.Date" parent="@style/TextAppearance.StatusBar.Expanded">
            <item name="android:textSize">14.0sp</item>
            <item name="android:textStyle">normal</item>
            <item name="android:textColor">#b2ffffff</item>
        </style>

    Add the codes below at the bottom before </resources>

    Code:
        <style name="TextAppearance.QuickSettings.Toggle" parent="@style/TextAppearance.QuickSettings">
            <item name="android:textSize">12.0sp</item>
            <item name="android:textStyle">normal</item>
            <item name="android:textColor">#b3ffffff</item>
            <item name="android:fontFamily">sans-serif-regular-systemui</item>
        </style>
        <style name="Theme.Lalalee" parent="@*android:style/Theme.Holo.Light.Dialog">
            <item name="android:windowBackground">@*android:color/transparent</item>
            <item name="android:windowNoTitle">true</item>
        </style>

    Done Now save the xml


    - Open arrays.xml

    Add these codes at the bottom before</resources>
    Code:
        <integer-array name="batterymeter_color_levels">
            <item>4</item>
            <item>15</item>
            <item>100</item>
        </integer-array>
        <array name="batterymeter_color_values">
            <item>#ffff3300</item>
            <item>#ffff3300</item>
            <item>#ffffffff</item>
        </array>
        <integer-array name="batterymeter_bolt_points">
            <item>73</item>
            <item>0</item>
            <item>392</item>
            <item>0</item>
            <item>201</item>
            <item>259</item>
            <item>442</item>
            <item>259</item>
            <item>4</item>
            <item>703</item>
            <item>157</item>
            <item>334</item>
            <item>0</item>
            <item>334</item>
        </integer-array>

    Save arrays.xml

    Search for them before adding, if these are already there, then skip this process...

    - Open colors.xml

    Copy the codes below and paste them before </resources>

    Code:
        <color name="qset_text_color_off">#b3ffffff</color>
        <color name="qset_text_color_on">#b3ffffff</color>
        <color name="qs_tile_normal">#ff263238</color>
        <color name="batterymeter_charge_color">@android:color/white</color>
        <color name="batterymeter_bolt_color">#b2000000</color>

    Before doing this, search for them seperately , u must not add them twice.. If u find them, change the hex code only..
    Save it...

    - Open strings.xml
    Add the codes below before </resources>
    Code:
        <string name="battery_meter_very_low_overlay_symbol">!</string>

    Save the xml
    Skip it if it is already there..

    - Go back and open AndroidManifest.xml

    Paste these codes below at the bottom before </application>

    Code:
            <activity android:theme="@style/Theme.Lalalee" android:name="com.android.settings.Profile">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                </intent-filter>
            </activity>

    Save the xml

    - Now go to smali/com/android/systemui
    Open SystemUIService.smali
    Copy the codes below and paste them after #virtual methods
    Don't forget to add 1 gap after .end method

    Code:
    .method public FMDProfPic(Landroid/view/View;)V
        .locals 3
        .parameter "v"
    
        .prologue
        .line 2431
        new-instance v0, Landroid/content/Intent;
    
        invoke-direct {v0}, Landroid/content/Intent;-><init>()V
    
        .line 2432
        const-string v1, "com.android.systemui"
    
        const-string v2, "com.android.settings.Profile"
    
        invoke-virtual {v0, v1, v2}, Landroid/content/Intent;->setClassName(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
    
        const/high16 v2, 0x1000
    
        invoke-virtual {v0, v2}, Landroid/content/Intent;->setFlags(I)Landroid/content/Intent;
    
        move-result-object v0
    
        .line 2433
        invoke-virtual {p0, v0}, Landroid/content/Context;->startActivity(Landroid/content/Intent;)V
    
        const-string v1, "statusbar"
    
        invoke-virtual {p0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
    
        move-result-object v0
    
        check-cast v0, Landroid/app/StatusBarManager;
    
        invoke-virtual {v0}, Landroid/app/StatusBarManager;->collapsePanels()V
    
        .line 1720
        return-void
    .end method

    Done Step 1, u can recompile systemui apk

    Wait Wait!!!

    If u're a KitKat user, u may get compiling error "no resource found @id/header_settings_button" something like that.. Then follow step 2.. If u hve succefully recompiled then skip that step...

    Step 2:

    - Download For_KitKat.zip from attachments and copy the files to respective folders

    - Navigate to res/values , open ids.xml add the code below before </resources>

    Code:
    <item type="id" name="header_settings_button">false</item>

    Done, Recompile ur systemui...
    now u can proceed to Step 3 :D

    Step 3:

    This step is for Id replacement, u must hve heard about it ;)

    - Decompile newly compiled systemUI.apk

    - Open LBatteryBar$1.smali in /smali/com/fmd/btn

    Search
    0x7f020145
    replace with the value of
    <public type="drawable" name="stat_sys_battery_charge" from your public.xml

    Search
    0x7f02013c
    replace with the value of
    <public type="drawable" name="stat_sys_battery" from your public.xml

    - Open SlideBrightness.smali in /smali/in/jmkl/dcsms/statusbargreper

    Search
    0x7f020263
    replace with the value of
    <public type="drawable" name="progress_horizontal" from your public.xml

    Search
    0x7f020270
    replace with the value of
    <public type="drawable" name="thumb" from your public.xml

    - Open Profile.smali in /smali/com/android/settings

    search code and replace with your public.xml

    0x7f04004d = <public type="layout" name="profile_cover"

    0x7f08012b = <public type="id" name="photo_picker_cover"

    0x7f08012c = <public type="id" name="owner_cover"

    0x7f08012d = <public type="id" name="name_field_cover"

    0x7f08012e = <public type="id" name="name_edit_cover"

    0x7f08012f = <public type="id" name="image_cover"

    0x7f020264 = <public type="drawable" name="fmd_me"

    - Open ProfilePicture$1.smali in /smali/com/android/settings

    search code and replace with your public.xml

    0x7f020264 = <public type="drawable" name="fmd_me"

    - Open ProfilePicture.smali

    Search code and replace with your public.xml

    0x7f08000b = <public type="id" name="image"

    0x7f020264 = <public type="drawable" name="fmd_me"

    Done!!

    Now ur Systemui is of FMD panel but the wifi and bt toggles are two, one is that of fmd and 2nd one is of ur stock.... :angel:
    So, follow next step...


    Step 4:

    Open Quicksettings.smali in smali/com/android/systemui/statusbar/phone

    For Jellybean -

    To remove bluetooth toggle find this-

    Code:
    bluetoothTile:Lcom/android/systemui/statusbar/phone/QuickSettingsTileView;

    then scroll until you find
    Code:
    Landroid/view/ViewGroup;->addView(Landroid/view/View;)V

    delete all that including the invoke
    (note: just scroll dont use search button so you won't
    get confused)

    For data connection toggle find-
    Code:
    dataconnectiontile:/Lcom/android/systemui/phone/Quicksettingstileview

    then scroll until you find this

    Code:
       invoke-virtual {v0, v7}, Landroid/view/ViewGroup;->addView(Landroid/view/View;)V

    Delete it..

    now just search for other tiles that you want to remove in the quicksettings..

    For Kitkat-

    Copy the line below search for it

    Code:
    .method private addAudioProfileTile(Landroid/view/ViewGroup;Landroid/view/LayoutInflater;)V

    that is the tile of audio profile if you want to remove it from your panel then scroll find this in the method:

    Code:
    Landroid/view/ViewGroup;->addView(Landroid/view/View;)V

    delete that whole line including the .line at the top of it
    also delete the gaps because there must be only 1 gap


    if you want to delete wifi tile from your panel
    then search:

    Code:
    .method private addWifiTile(Landroid/view/ViewGroup;Landroid/view/LayoutInflater;)V

    that is the tile of wifi if you want to remove it from your panel then just find again the this line in the method

    Code:
    Landroid/view/ViewGroup;->addView(Landroid/view/View;)V

    delete that whole line including the .line at the top of it

    Do it with all the toggles which u wanna remove ;)

    This step is slightly confusing, just skip it if u r not getting :)

    Step 5:

    Now What! Recompile ur systemui
    Patch ur services.jar, yes! U have edited Androidmanifest.xml , so u gotta sign it with custom signature
    Don't know how to patch services.jar.. Just search on XDA, there are many guides :p

    Now make flashable zip of systemUI.apk and flash it.

    SystemUi force closed , same as mine! :( Don't Worry Follow next step

    Step 6:

    Download fix.zip from attachments below.. Copy png to res/drawable-hdpi folder

    Recompile ur systemui.apk and again decomile it

    Open SignalToggle in /smali/com/fmd/qset

    find 0x7f0201f3
    replace with
    <public type="drawable" name="stat_sys_signal_null"
    from your public.xml

    Ah! Done Now. Recompile ur systemui and flash it.. Enjoy

    Credits-

    Fmd Devs
    Klark Luis Peralta
    Jeff Rivera
    Aljhun Bumaya
    b16h22
    Maaadr

    i m not so cheap to take credit only for sharing it :p
    Just Hit Thank you button if i helped u in anyway :D
    3
    I tried but got too many errors and didn't know how to solve them. Can i make a request that you do it for me and send back please. Here are the files and recompiling log from Tickle my Android. SystemUI.apk

    Note: This might help, I have an Alcatel device so that means i have a custpack partition. In the custpack partition there is an apk file where the resources (res folder) for the SystemUI.apk is. It is called SystemUI-res.apk. So when decompiling you have to add the AndroidManifest.xml inside the apk before decompiling and remove it after recompiling. The files I've attached I've already done that for you so it would be great if someone can made the Android L for me :eek: .

    Same problem here, does anyone have a solution?
    http://pastebin.com/n0bZM60N

    edit: found a solution in post http://xdaforums.com/showpost.php?p=61808403&postcount=18
    2
    About res folder in SystemUIFiles

    I extracted the SystemUIFiles from the OP and realized that i didn't copy the files from the drawable-xxhdpi folder since my device doesn't have that folder so what i did was resize to hdpi so you won't get any more recompile errors.
    2
    Yes bro...in the first step its there... if i delete that i get many other errors...

    Make sure you merged all the files from the res folder into your res folder in SystemUI.apk

    ---------- Post added at 02:43 PM ---------- Previous post was at 02:41 PM ----------

    Yeah i googled it also, .parameter lines are for debugging so you can delete them all, or use baksmali instead of apktool.
    Then the no viable alternative at input 'dx' is a syntax error, in the code it is like this .local v1, dy:F but you need to put " " at the dx in this case: .local v1, "dy":F

    Seems like a lot and i don't know much, hardly anything about smali code. So I'm hoping someone can patch my SystemUI.apk :fingers-crossed: