FORUMS

[Guide][How to get Fmd L Panel]

159 posts
Thanks Meter: 395
 
By itsraj011, Senior Member on 17th June 2015, 06:20 PM
Post Reply Email Thread
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

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

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

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....
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

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
Just Hit Thank you button if i helped u in anyway
Attached Files
File Type: zip SystemUIFiles.zip - [Click for QR Code] (202.3 KB, 5354 views)
File Type: zip For_kitkat.zip - [Click for QR Code] (10.4 KB, 3020 views)
File Type: zip Fix.zip - [Click for QR Code] (508 Bytes, 3418 views)
The Following 29 Users Say Thank You to itsraj011 For This Useful Post: [ View ] Gift itsraj011 Ad-Free
17th June 2015, 08:18 PM |#2  
OP Senior Member
Thanks Meter: 395
 
More
Screenshots
Attached Thumbnails
Click image for larger version

Name:	Screenshot_2015-06-17-22-51-59.png
Views:	8880
Size:	132.0 KB
ID:	3367213   Click image for larger version

Name:	Screenshot_2015-06-17-22-57-23.png
Views:	9440
Size:	102.8 KB
ID:	3367214  
The Following 10 Users Say Thank You to itsraj011 For This Useful Post: [ View ] Gift itsraj011 Ad-Free
4th July 2015, 02:38 PM |#4  
Senior Member
Flag Trivandrum
Thanks Meter: 28
 
More
Help Required...
I tried steps as in the tutorial but im not able to recompile after step 1... its says @style/TextAppearance.QuickSettings no resources found that matches the name. ... am i doing sumething wrong?? plz help.... thanx
10th July 2015, 09:16 AM |#5  
nophyan's Avatar
Senior Member
Flag magelang
Thanks Meter: 29
 
Donate to Me
More
Quote:
Originally Posted by Gokulb1

I tried steps as in the tutorial but im not able to recompile after step 1... its says @style/TextAppearance.QuickSettings no resources found that matches the name. ... am i doing sumething wrong?? plz help.... thanx

have add that line on your style?
10th July 2015, 09:57 AM |#6  
Member
Thanks Meter: 35
 
More
There is a guide similar to this on XDA already but it didn't work for some of the members. You can leave your guide so that others may try.I know I will. Thanks and keep up tew good work.

Ran out of thanks will thank you tomorrow
10th July 2015, 02:14 PM |#7  
Senior Member
Flag Trivandrum
Thanks Meter: 28
 
More
Quote:
Originally Posted by nophyan

have add that line on your style?

Yes bro...in the first step its there... if i delete that i get many other errors...
10th July 2015, 06:00 PM |#8  
Member
Thanks Meter: 35
 
More
Help :(
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 .
Attached Files
File Type: txt [email protected] - [Click for QR Code] (6.0 KB, 158 views)
File Type: txt [email protected] - [Click for QR Code] (4.7 KB, 76 views)
10th July 2015, 07:08 PM |#10  
QuBeX's Avatar
Senior Member
Flag León
Thanks Meter: 574
 
Donate to Me
More
Quote:
Originally Posted by nashj1975

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 .

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

edit: found a solution in post http://forum.xda-developers.com/show...3&postcount=18
The Following 3 Users Say Thank You to QuBeX For This Useful Post: [ View ] Gift QuBeX Ad-Free
10th July 2015, 07:30 PM |#11  
Member
Thanks Meter: 35
 
More
Quote:
Originally Posted by QuBeX

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

I googled one of your errors this one
Code:
Error for input '.parameter': Invalid directive
and i realized that you need to use apktool 1.5.2 and not 2.0. Sadly I couldn't find anything with the other error
Post Reply Subscribe to Thread

Guest Quick Reply (no urls or BBcode)
Message:
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes