[DEV][MODDING] CRT, Airview, 4-way reboot, ink effect, phone, sms..etc [9/Dec/2013]

Linuxx84

Senior Member
Dec 12, 2012
198
29
0
This means you have mismatched values.. check values in values\strings.xml and pic name in drawable-xhdpi folder/QUOTE]

Ok majdinj, I solved! But I noticed something wrong...sometimes the app that I integrated into settings.apk doesn't work well. After a reboot doesn't work properly. The only way to resolve this is to reinstall the app. Why?
 

Goldie

Inactive Recognized Developer
Oct 16, 2010
9,966
22,758
0
Re: [DEV][MODDING] CRT, Airview, 4-way reboot, ink effect, phone, sms..etc [1/March/2

This means you have mismatched values.. check values in values\strings.xml and pic name in drawable-xhdpi folder/QUOTE]

Ok majdinj, I solved! But I noticed something wrong...sometimes the app that I integrated into settings.apk doesn't work well. After a reboot doesn't work properly. The only way to resolve this is to reinstall the app. Why?
You're probably using its first run activity instead of the one that runs on subsequent opening.

Sent from my GT-I9100 using Tapatalk 2
 

majdinj

Senior Member
Nov 25, 2006
980
3,437
0
AlAhsa
[Manual] Proper CRT-OFF for JB - http://forum.xda-developers.com/showpost.php?p=32761083
How can you do for our phone?
In PowerManagerService$ScreenBrightnessAnimator.smali look at this line:
Code:
# static fields
.field static final ANIMATE_LIGHTS:I = 0xa

[B][COLOR="Blue"].field static final ANIMATE_POWER_OFF:I = 0xb[/COLOR][/B]
Now to look here:
Code:
    .line 3022
    iget-object v7, p0, Lcom/android/server/PowerManagerService$ScreenBrightnessAnimator;->this$0:Lcom/android/server/PowerManagerService;

    #getter for: Lcom/android/server/PowerManagerService;->mScreenBrightnessHandler:Landroid/os/Handler;
    invoke-static {v7}, Lcom/android/server/PowerManagerService;->access$7200(Lcom/android/server/PowerManagerService;)Landroid/os/Handler;

    move-result-object v7

[B][COLOR="Red"]    const/16 v9, 0xa[/COLOR][/B]

    invoke-virtual {v7, v9, p1, v3}, Landroid/os/Handler;->obtainMessage(III)Landroid/os/Message;

    move-result-object v2
As you can see we don't have the value for ANIMATE_POWER_OFF:I = 0xb. so we simply add it and so the final code will be:
Code:
    .line 3022
    iget-object v7, p0, Lcom/android/server/PowerManagerService$ScreenBrightnessAnimator;->this$0:Lcom/android/server/PowerManagerService;

    #getter for: Lcom/android/server/PowerManagerService;->mScreenBrightnessHandler:Landroid/os/Handler;
    invoke-static {v7}, Lcom/android/server/PowerManagerService;->access$7200(Lcom/android/server/PowerManagerService;)Landroid/os/Handler;

    move-result-object v7
[B][COLOR="RoyalBlue"]
    if-eqz p2, :cond_maj

    const/16 v9, 0xb

    const/4 v10, 0x0

    const v2, 0x10

    invoke-virtual {v7, v9, v2, v10}, Landroid/os/Handler;->obtainMessage(III)Landroid/os/Message;

    move-result-object v9

    invoke-virtual {v9}, Landroid/os/Message;->sendToTarget()V

    :cond_maj[/COLOR][/B]
    const/16 v9, 0xa

    invoke-virtual {v7, v9, p1, v3}, Landroid/os/Handler;->obtainMessage(III)Landroid/os/Message;

    move-result-object v2
I hope it is clear now!!!

You're probably using its first run activity instead of the one that runs on subsequent opening.

Sent from my GT-I9100 using Tapatalk 2
+1
 
Last edited:
  • Like
Reactions: djoni_gitara

zai89

Senior Member
Jul 15, 2012
1,050
1,059
0
5°15′N 117°0′E Sabah
try to add app on setting
Got this warning while compile secsetting.apk..is it normal?

Code:
aapt: warning: string 'lgt_service_global_auto_roaming_call_customcenter_summary_nocall' has no default translation in /home/anit/out/./res; found: fr
aapt: warning: string 'onscreen_keypad' has no default translation in /home/anit/out/./res; found: ar en_US fa fr ko ur
aapt: warning: string 'wifi_scc_diff_notification_dialog_msg' has no default translation in /home/anit/out/./res; found: ar en_US fa fr ur
 

Adhityairvan

Senior Member
Jul 31, 2012
379
81
0
Bekasi
www.cyberelite.org
try to add app on setting
Got this warning while compile secsetting.apk..is it normal?

Code:
aapt: warning: string 'lgt_service_global_auto_roaming_call_customcenter_summary_nocall' has no default translation in /home/anit/out/./res; found: fr
aapt: warning: string 'onscreen_keypad' has no default translation in /home/anit/out/./res; found: ar en_US fa fr ko ur
aapt: warning: string 'wifi_scc_diff_notification_dialog_msg' has no default translation in /home/anit/out/./res; found: ar en_US fa fr ur
+1 i got the same problem here :confused:
 

apurvapatel

Senior Member
Mar 15, 2009
262
93
0
Gujarat
+1 i got the same problem here :confused:
@ Zai and Adhitya - Ignore the errors. The apk will compile anyway and the new apk would work just fine.

@majdinj - I myself am having a little problem : P

I am on XXLSZ. I edited the SecSettings.apk and android.policy.jar as per the tutorial. I cant seem to get the Smart Rotate and the Hot Reboot to work.

Smart Rotate just doesnt show up and Hot Reboot sticks my phone at the glowing Samsung Logo.

Should I attach my modded SecSettings.apk and android.policy.jar here so you can have a look at it and guide me further?
 

majdinj

Senior Member
Nov 25, 2006
980
3,437
0
AlAhsa
@ Zai and Adhitya - Ignore the errors. The apk will compile anyway and the new apk would work just fine.

@majdinj - I myself am having a little problem : P

I am on XXLSZ. I edited the SecSettings.apk and android.policy.jar as per the tutorial. I cant seem to get the Smart Rotate and the Hot Reboot to work.

Smart Rotate just doesnt show up and Hot Reboot sticks my phone at the glowing Samsung Logo.

Should I attach my modded SecSettings.apk and android.policy.jar here so you can have a look at it and guide me further?
Hot Reboot depends on the kernel installed (Latest Philz kernels doesn't support this feature unfortunately!!)
For Smart Rotation in XXLSZ, you can download modded SecSettings.apk I made for eybee's ROM from here (the one without integrated apps) and you can use it to build up your XXLSZ ROM.
 
  • Like
Reactions: apurvapatel

apurvapatel

Senior Member
Mar 15, 2009
262
93
0
Gujarat
Hot Reboot depends on the kernel installed (Latest Philz kernels doesn't support this feature unfortunately!!)
For Smart Rotation in XXLSZ, you can download modded SecSettings.apk I made for eybee's ROM from here (the one without integrated apps) and you can use it to build up your XXLSZ ROM.
That worked perfectly fine for my ROM. : )

Majdin, is it possible to mod to get the flashlight working on lockscreen when you press the home button?
 

ardicli2000

Senior Member
Sep 30, 2011
586
184
63
@majdinj

I have flashed SecGallery2_Galaxy. apk and com.sec.feature.hovering_ui.xml files extracted from Ultimate Rom over the stock XXLSZ (odexed).
Though nothing changed :(
What could be the reason? What can I do?

New gallery works flwalessly....
 

zai89

Senior Member
Jul 15, 2012
1,050
1,059
0
5°15′N 117°0′E Sabah
Re: [DEV][MODDING] CRT, Airview, 4-way reboot, ink effect, phone, sms..etc [1/March/2

@majdinj

I have flashed SecGallery2_Galaxy. apk and com.sec.feature.hovering_ui.xml files extracted from Ultimate Rom over the stock XXLSZ (odexed).
Though nothing changed :(
What could be the reason? What can I do?

New gallery works flwalessly....
You need to be on deodexed rom..

Sent from my GT-N7000 using Tapatalk 2
 

apurvapatel

Senior Member
Mar 15, 2009
262
93
0
Gujarat
Integrating application in settings menu

This really handy one.. so take care!!:confused:
In this tutorial, we will add USB-Mode program to Settings menu as an example

On your PC
1) Decompile SecSettings.apk.
2) Decompile the program that you want to add to settings menu (USB-Mode)
3) Go to \res\drawable-xhdpi folder and add icon for your program that you want to add (you can take it from decompiled wanted program (USBMode folder).



4) Go to \res\values folder and open strings.xml by NotePad++ and add these lines just before </resources> for your program
Code:
    <string name="gloryromaddons">GloryROM Addons</string>
    <string name="usbswitcher_text">USB mode switcher</string>
Here change “gloryromaddons” with any thing you want to show as a header in the Settings menu. “usbswitcher_text” is your wanted program
5) Go to \res\xml folder and open settings_headers.xml by NotePad++ and add these lines (the place you put these lines will be the place where added program will be displayed in Settings menu)
Code:
<header android:title="@string/gloryromaddons" />
    <header android:icon="@drawable/usbswitcher" android:title="@string/usbswitcher_text">
        <intent android:targetPackage="in.zatta.USB_switch" android:action="android.intent.action.MAIN" android:targetClass="in.zatta.USB_switch.USB_switcherActivity" />
    </header>
The first line reflect the header title in settings menu (So gloryromaddons will be seen as “GloryROM Addons” in the phone, see strings.xml that we edited and you will figure it out!!)

The 2nd line is for added program:
  • android:[email protected]/name of icon you put in drawable-xhdpi folder (here we put usbswitcher as the icon name inside drawable-xhdpi)
  • android:[email protected]/name of string put for added program in strings.xml (here we put usbswitcher_text as in strings.xml)

The 3rd line is the functionality and is the most difficult one:
  • android:targetPackage=package of wanted program inside its own AndroidManifest.xml (here it is “in.zatta.USB_switch”)
  • android:action=first action of wanted program inside its own AndroidManifest.xml (here it is “android.intent.action.MAIN”)



  • androidtargetClass= android:targetPackage.Activity (we have android:targetPackage from previous step but we need also .Activity how to get it??) This is the tricky one so do the following:
On your phone:
install the program you want to add (USB mode switcher) and ADW launcher from Google play and make ADW launcher as your phone launcher. Find a blank area on your homescreen(s), long press, then select custom shortcut --> pick your activity --> activities --> browse down until you find USB switcher app and expand with the arrow on the left of USB switcher, you will see several activities (some may have only one). The first one in the list is usually its opening class; it is in between the ( )'s. In this example it is .USB_switcherActivity



Go back to your PC:
So now androidtargetClass= android:targetPackage.Activity will be:
androidtargetClass= in.zatta.USB_switch.USB_switcherActivity

6) Now compile SecSettings and push it to your phone.

Found a simpler straight forward method to get the target package name and the activity name.
  • Install xShortcut Free from the market.
  • Open and click the settings icon in xShortcut
  • Enable "Permanent Capture"
  • You should have an icon of the app in the notification bar.
  • Run the app whose details you need.
  • Click on the xShortcut icon on the notification bar.
You should have a screen displaying the info you need.

Screenshot_2013-03-24-14-29-40.jpg
 

not-i

Senior Member
Feb 19, 2012
3,785
9,025
0
Sunshine Coast, Australia
Re: [DEV][MODDING] CRT, Airview, 4-way reboot, ink effect, phone, sms..etc [1/March/2

Found a simpler straight forward method to get the target package name and the activity name.
  • Install xShortcut Free from the market.
  • Open and click the settings icon in xShortcut
  • Enable "Permanent Capture"
  • You should have an icon of the app in the notification bar.
  • Run the app whose details you need.
  • Click on the xShortcut icon on the notification bar.
You should have a screen displaying the info you need.

View attachment 1829369
It is also the first activity in the android manifest xml you are already using

Sent from my GT-N7100 using xda premium
 

majdinj

Senior Member
Nov 25, 2006
980
3,437
0
AlAhsa
Found a simpler straight forward method to get the target package name and the activity name.
  • Install xShortcut Free from the market.
  • Open and click the settings icon in xShortcut
  • Enable "Permanent Capture"
  • You should have an icon of the app in the notification bar.
  • Run the app whose details you need.
  • Click on the xShortcut icon on the notification bar.
You should have a screen displaying the info you need.

View attachment 1829369
lol.. you are already into it mate :good:
have a nice modding :laugh:
 
  • Like
Reactions: apurvapatel

Mundo Hackz

Senior Member
Dec 3, 2012
854
308
93
28
Belleville, NJ
jinseisugoi.com
SMS hack: SMS 200 recipients, stop SMS to MMS auto-converting, increase SMS hour limit

I. SMS 200 recipients:
1) Backsmali SecMMs.apk
2) Navigate to and open classout\com\android\mms\MmsConfig.smali
3) Search for ".method public static getRecipientLimit()I" and do these changes:
Code:
.method public static getRecipientLimit()I
    .registers 1

    .prologue
    .line 656
    [B][COLOR="Red"]sget v0, Lcom/android/mms/MmsConfig;->mRecipientLimit:I[/COLOR][/B]

    return v0
.end method
to:
Code:
.method public static getRecipientLimit()I
    .registers 1

    .prologue
    .line 656
    [B][COLOR="Blue"]const/16 v0, 0xc8[/COLOR][/B]

    return v0
.end method
Save changes and recompile (smali) your apk.

II. Stop SMS to MMS auto-converting:
1) Backsmali SecMMs.apk
2) Navigate to and open classout\com\android\mms\MmsConfig.smali
3) Search for "Lcom/android/mms/MmsConfig;->mMaxImageWidthRestrictedMode:I" and do these changes:
Code:
    sput v0, Lcom/android/mms/MmsConfig;->mMaxImageWidthRestrictedMode:I

    .line 153
    [B][COLOR="Red"]sput v7, Lcom/android/mms/MmsConfig;->mRecipientLimit:I[/COLOR][/B]

    .line 154
    [B][COLOR="Red"]const/16 v0, 0xc8[/COLOR][/B]

    sput v0, Lcom/android/mms/MmsConfig;->mDefaultSMSMessagesPerThread:I
to:
Code:
    sput v0, Lcom/android/mms/MmsConfig;->mMaxImageWidthRestrictedMode:I

    .line 153
    [B][COLOR="Blue"]const/16 v0, 0x3e8
[/COLOR][/B]
    .line 154
    [B][COLOR="Blue"]sput v0, Lcom/android/mms/MmsConfig;->mRecipientLimit:I[/COLOR][/B]

    sput v0, Lcom/android/mms/MmsConfig;->mDefaultSMSMessagesPerThread:I
4) Then search for "Lcom/android/mms/MmsConfig;->mAllowAttachAudio:Z" and do these changes:
Code:
    .line 161
    sput-boolean v2, Lcom/android/mms/MmsConfig;->mAllowAttachAudio:Z

    .line 164
    [B][COLOR="Red"]const/4 v0, 0x4[/COLOR][/B]

    sput v0, Lcom/android/mms/MmsConfig;->mSmsToMmsTextThreshold:I
to:
Code:
    .line 161
    sput-boolean v2, Lcom/android/mms/MmsConfig;->mAllowAttachAudio:Z

    .line 164
    [B][COLOR="Blue"]const/16 v0, 0x3e8[/COLOR][/B]

    sput v0, Lcom/android/mms/MmsConfig;->mSmsToMmsTextThreshold:I
5) Then search for ".method public static getMaxRecipientLength()I" and do these changes:
Code:
.method public static getMaxRecipientLength()I
    .registers 1

    .prologue
    .line 2259
    [B][COLOR="Red"]sget v0, Lcom/android/mms/MmsConfig;->mMaxRecipientLength:I[/COLOR][/B]

    return v0
.end method
to:
Code:
.method public static getMaxRecipientLength()I
    .registers 1

    .prologue
    .line 2259
    [B][COLOR="Blue"]const/16 v0, 0x3e8[/COLOR][/B]

    return v0
.end method
6) Then search for ".method public static getMmsMaxRecipient()I" and do these changes:
Code:
.method public static getMmsMaxRecipient()I
    .registers 1

    .prologue
    .line 2498
    [B][COLOR="Red"]sget v0, Lcom/android/mms/MmsConfig;->mMmsRecipientLimit:I[/COLOR][/B]

    return v0
.end method
to:
Code:
.method public static getMmsMaxRecipient()I
    .registers 1

    .prologue
    .line 2498
    [B][COLOR="Blue"]const/16 v0, 0x3e8[/COLOR][/B]

    return v0
.end method
7) Then search for ".method public static getSmsToMmsTextThreshold()I" and do these changes:
Code:
.method public static getSmsToMmsTextThreshold()I
    .registers 1

    .prologue
    .line 585
    [B][COLOR="Red"]sget v0, Lcom/android/mms/MmsConfig;->mSmsToMmsTextThreshold:I[/COLOR][/B]

    return v0
.end method
to:
Code:
.method public static getSmsToMmsTextThreshold()I
    .registers 1

    .prologue
    .line 585
    [B][COLOR="Blue"]const/16 v0, 0x3e8[/COLOR][/B]

    return v0
.end method
8) Then search for "Lcom/android/mms/MmsConfig;->mMaxRecipientLength:I" and add this line above it (the blue one):
Code:
    move-result v10
	
    [B][COLOR="Blue"]const/16 v9, 0x3e8[/COLOR][/B]

    sput v10, Lcom/android/mms/MmsConfig;->mMaxRecipientLength:I

    .line 1638
    sget v10, Lcom/android/mms/MmsConfig;->mMinRecipientLength:I
9) Then search for "Lcom/android/mms/MmsConfig;->mSmsToMmsTextThreshold:I" and add this line above it (the blue one):
Code:
    move-result v1
	
    [B][COLOR="Blue"]const/16 v1, 0x3e8[/COLOR][/B]

    sput v1, Lcom/android/mms/MmsConfig;->mSmsToMmsTextThreshold:I

    .line 1817
    const-string v1, "Mms/MmsConfig"
10) Then search for "Lcom/android/mms/MmsConfig;->mRecipientLimit:I" add this line above it (the blue one):
Code:
    invoke-interface {v0, v1, v4}, Landroid/content/SharedPreferences;->getInt(Ljava/lang/String;I)I

    move-result v1
	
    [B][COLOR="Blue"]const/16 v1, 0x3e8[/COLOR][/B]

    sput v1, Lcom/android/mms/MmsConfig;->mRecipientLimit:I
11) Save changes and recompile (smali) your apk.. phewww wow we finished :D


III. Increase SMS hour limit:
1) Backsmali SecMMs.apk
2) Navigate and open classout\com\android\mms\util\RateController.smali
3) Look for this line:
Code:
.field private static final RATE_LIMIT:I = [B][COLOR="Red"]0x64[/COLOR][/B]
and change it to:
Code:
.field private static final RATE_LIMIT:I = [B][COLOR="Blue"]0x3e8[/COLOR][/B]
4) Save changes and recompile (smali) your apk



23 toggles notification panel (Lidroid way)


1. Decompile SystemUI.apk by APK-Multi-Tool.
2. Navigate to res\layout folder and open tw_status_bar_expanded.xml and do these changes (delete red lines, add blue lines, and modify the green one to be like it):
Code:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout android:id="@id/notification_panel" android:background="@drawable/notification_panel_bg" android:paddingTop="@dimen/notification_panel_padding_top" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginLeft="@dimen/notification_panel_margin_left"
  xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui">
    <FrameLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginBottom="@dimen/tw_close_handle_underlap">
        <include android:layout_width="fill_parent" android:layout_height="@dimen/tw_notification_panel_header_height" layout="@layout/tw_status_bar_expanded_header" />
        <TextView android:gravity="center" android:id="@id/emergency_calls_only" android:paddingBottom="4.0dip" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="wrap_content" />
        <View android:background="#ff091a24" android:layout_width="fill_parent" android:layout_height="1.0dip" android:layout_marginTop="@dimen/tw_notification_panel_header_height" />
        [B][COLOR="Blue"]<HorizontalScrollView android:id="@id/quicksetting_scroller" android:visibility="gone" android:scrollbars="none" android:layout_width="wrap_content" android:layout_height="@dimen/quick_setting_button_height" android:layout_marginTop="@dimen/tw_notification_panel_header_height">
            <com.android.systemui.statusbar.policy.quicksetting.QuickSettingPanel android:orientation="horizontal" android:id="@id/quicksetting_container" android:layout_width="wrap_content" android:layout_height="wrap_content" android:divider="@drawable/tw_black_bg" android:showDividers="middle" />
        </HorizontalScrollView>
        <com.wanam.systemui.quickpanel.PowerWidget android:id="@id/exp_power_stat" android:layout_width="wrap_content" android:layout_height="@dimen/quick_setting_button_height" android:layout_marginTop="@dimen/tw_notification_panel_header_height" />
        <LinearLayout android:orientation="vertical" android:id="@id/brightness_controller" android:background="#ff000000" android:layout_width="fill_parent" android:layout_height="56.0dip" android:layout_marginTop="@dimen/notification_panel_quicksettingbtn_height">
            <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="55.0dip">
                <ImageView android:id="@id/brightness_icon" android:clickable="true" android:layout_width="25.0dip" android:layout_height="fill_parent" android:layout_marginLeft="13.0dip" android:src="@drawable/ic_sysbar_brightness" android:contentDescription="@string/accessibility_brightness_icon" />
                <FrameLayout android:id="@id/brightness_group" android:layout_width="fill_parent" android:layout_height="fill_parent">
                    <com.android.systemui.statusbar.policy.ToggleSlider android:id="@id/brightness" android:layout_width="fill_parent" android:layout_height="fill_parent" systemui:text="@string/status_bar_settings_auto_brightness_label" />
                    <com.android.systemui.statusbar.policy.ToggleSlider android:id="@id/auto_brightness" android:layout_width="fill_parent" android:layout_height="fill_parent" systemui:text="@string/status_bar_settings_auto_brightness_label" />
                </FrameLayout>
            </LinearLayout>
            <View android:background="#ff091a24" android:layout_width="fill_parent" android:layout_height="1.0dip" />
        </LinearLayout>[/COLOR][/B]
        [B][COLOR="SeaGreen"]<ScrollView android:id="@id/scroll" android:fadingEdge="none" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginTop="@dimen/notification_panel_notification_top_margin" android:overScrollMode="ifContentScrolls">[/COLOR][/B]
            <LinearLayout android:orientation="vertical" android:id="@id/scrollCart" android:layout_width="fill_parent" android:layout_height="wrap_content">
                [B][COLOR="Red"]<HorizontalScrollView android:id="@id/quicksetting_scroller" android:scrollbars="none" android:layout_width="wrap_content" android:layout_height="@dimen/quick_setting_button_height">
                    <com.android.systemui.statusbar.policy.quicksetting.QuickSettingPanel android:orientation="horizontal" android:id="@id/quicksetting_container" android:layout_width="wrap_content" android:layout_height="wrap_content" android:divider="@drawable/tw_black_bg" android:showDividers="middle" />
                </HorizontalScrollView>
                <LinearLayout android:orientation="vertical" android:id="@id/brightness_controller" android:background="#ff000000" android:layout_width="fill_parent" android:layout_height="56.0dip">
                    <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="55.0dip">
                        <ImageView android:id="@id/brightness_icon" android:clickable="true" android:layout_width="25.0dip" android:layout_height="fill_parent" android:layout_marginLeft="13.0dip" android:src="@drawable/ic_sysbar_brightness" android:contentDescription="@string/accessibility_brightness_icon" />
                        <FrameLayout android:id="@id/brightness_group" android:layout_width="fill_parent" android:layout_height="fill_parent">
                            <com.android.systemui.statusbar.policy.ToggleSlider android:id="@id/brightness" android:layout_width="fill_parent" android:layout_height="fill_parent" systemui:text="@string/status_bar_settings_auto_brightness_label" />
                            <com.android.systemui.statusbar.policy.ToggleSlider android:id="@id/auto_brightness" android:layout_width="fill_parent" android:layout_height="fill_parent" systemui:text="@string/status_bar_settings_auto_brightness_label" />
                        </FrameLayout>
                    </LinearLayout>
                    <View android:background="#ff091a24" android:layout_width="fill_parent" android:layout_height="1.0dip" />
                </LinearLayout>[/COLOR][/B]
                <LinearLayout android:orientation="vertical" android:id="@id/noNotificationsTitle" android:focusable="true" android:layout_width="fill_parent" android:layout_height="wrap_content">
                    <TextView android:textSize="@dimen/status_bar_expanded_notification_category_text_size" android:textColor="@color/notification_category_color" android:gravity="left|center" android:id="@id/noNotificationsText" android:paddingLeft="11.0dip" android:layout_width="fill_parent" android:layout_height="@dimen/status_bar_expanded_notification_category_height" android:text="@string/status_bar_no_notifications_title" />
                </LinearLayout>
                <LinearLayout android:orientation="vertical" android:id="@id/onGoingCart" android:background="#ff293945" android:focusable="true" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="@dimen/status_bar_expanded_notification_category_height">
                    <TextView android:textSize="@dimen/status_bar_expanded_notification_category_text_size" android:textColor="@color/notification_category_color" android:gravity="left|center" android:id="@id/onGoingNotificationText" android:paddingLeft="11.0dip" android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="@string/status_bar_ongoing_events_title" />
                </LinearLayout>
                <com.android.systemui.statusbar.policy.NotificationRowLayout android:id="@id/onGoingItems" android:layout_width="fill_parent" android:layout_height="wrap_content" systemui:rowHeight="@dimen/tw_notification_row_min_height" />
                <LinearLayout android:orientation="vertical" android:id="@id/notificationCart" android:background="#ff293945" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="@dimen/status_bar_expanded_notification_category_height">
                    <RelativeLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content">
                        <TextView android:textSize="@dimen/status_bar_expanded_notification_category_text_size" android:textColor="@color/notification_category_color" android:gravity="left|center" android:id="@id/latestNotificationText" android:paddingLeft="11.0dip" android:layout_width="180.0dip" android:layout_height="fill_parent" android:text="@string/status_bar_latest_events_title" android:layout_alignParentLeft="true" />
                        <TextView android:textSize="@dimen/status_bar_expanded_notification_clear_button_text_size" android:textColor="@color/tw_status_bar_clear_btn_text" android:gravity="center" android:id="@id/clear_all_button" android:background="@drawable/tw_btn_default_small" android:padding="0.100000024dip" android:focusable="true" android:clickable="true" android:layout_width="@dimen/status_bar_expanded_clear_button_width" android:layout_height="fill_parent" android:layout_marginRight="4.0dip" android:text="@string/status_bar_clear_all_button" android:layout_alignParentRight="true" android:contentDescription="@string/accessibility_clear_all" />
                    </RelativeLayout>
                </LinearLayout>
                <com.android.systemui.statusbar.policy.NotificationRowLayout android:id="@id/notificationItems" android:layout_width="fill_parent" android:layout_height="wrap_content" systemui:rowHeight="@dimen/tw_notification_row_min_height" />
                <com.android.systemui.statusbar.policy.NotificationRowLayout android:id="@id/latestItems" android:layout_width="fill_parent" android:layout_height="wrap_content" systemui:rowHeight="@dimen/tw_notification_row_min_height" />
            </LinearLayout>
        </ScrollView>
    </FrameLayout>
    <com.android.systemui.statusbar.phone.CloseDragHandle android:layout_gravity="bottom" android:orientation="vertical" android:id="@id/close" android:layout_width="fill_parent" android:layout_height="@dimen/tw_close_handle_height">
        <RelativeLayout android:layout_width="fill_parent" android:layout_height="fill_parent">
            <ImageView android:layout_gravity="bottom" android:layout_width="fill_parent" android:layout_height="@dimen/tw_close_handle_height" android:src="@drawable/tw_status_bar_close" android:scaleType="fitXY" />
            <TextView android:textAppearance="@style/TextAppearance.StatusBar.Expanded.Network" android:gravity="center" android:layout_gravity="bottom" android:id="@id/carrier_label" android:layout_width="fill_parent" android:layout_height="@dimen/tw_close_handle_height" android:layout_marginBottom="10.0dip" />
        </RelativeLayout>
    </com.android.systemui.statusbar.phone.CloseDragHandle>
</FrameLayout>
To make life easy, you can simply download the modified tw_status_bar_expanded.xml file and paste it over the original one.
3. Navigate to res\values\ folder and open ids.xml and add the following line at the end before </resources> line:
Code:
    <item type="id" name="exp_power_stat">false</item>
4. Navigate to and open smali\com\android\systemui\statusbar\phone\PhoneStatusBar.smali file, now search for ".field mPostCollapseCleanup:Ljava/lang/Runnable;" and add this line bellow it (the blue one here):
Code:
.field mPostCollapseCleanup:Ljava/lang/Runnable;

[B][COLOR="Blue"].field mPowerWidget:Lcom/wanam/systemui/quickpanel/PowerWidget;[/COLOR][/B]

.field mQueueLock:Ljava/lang/Object;
5. Still in PhoneStatusBar.smali, search for ".method public addIcon" and add these lines (the blue ones) at the end of this method before the "return-void" line:
Code:
    invoke-virtual {v1, v0, p3, v2}, Landroid/widget/LinearLayout;->addView(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;)V

    .line 1170
    [B][COLOR="Blue"]iget-object v1, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mPowerWidget:Lcom/wanam/systemui/quickpanel/PowerWidget;

    invoke-virtual {v1}, Lcom/wanam/systemui/quickpanel/PowerWidget;->updateWidget()V[/COLOR][/B]

    return-void
.end method
6. Still in PhoneStatusBar.smali, search for ".method protected makeStatusBarView", then search for "Landroid/widget/ScrollView;->setVerticalScrollBarEnabled(Z)V" and add these lines (the blue ones) bellow it:
Code:
    invoke-virtual {v9, v10}, Landroid/widget/ScrollView;->setVerticalScrollBarEnabled(Z)V

    [B][COLOR="Blue"]move-object/from16 v0, p0

    iget-object v9, v0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mStatusBarWindow:Lcom/android/systemui/statusbar/phone/StatusBarWindowView;

    const v10, [COLOR="Purple"]0x7fxxxxxx[/COLOR]

    invoke-virtual {v9, v10}, Lcom/android/systemui/statusbar/phone/StatusBarWindowView;->findViewById(I)Landroid/view/View;

    move-result-object v9

    check-cast v9, Lcom/wanam/systemui/quickpanel/PowerWidget;

    move-object/from16 v0, p0

    iput-object v9, v0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mPowerWidget:Lcom/wanam/systemui/quickpanel/PowerWidget;[/COLOR][/B]

    .line 714
    new-instance v9, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$MyTicker;
7. Still in PhoneStatusBar.smali, search for "Landroid/content/Context;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;" and add these lines bellow it (the blue ones):
Code:
    invoke-virtual {v1, v9, v2}, Landroid/content/Context;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;

[B][COLOR="Blue"]    move-object/from16 v0, p0

    iget-object v9, v0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mPowerWidget:Lcom/wanam/systemui/quickpanel/PowerWidget;

    invoke-virtual {v9}, Lcom/wanam/systemui/quickpanel/PowerWidget;->setupWidget()V[/COLOR][/B]

    .line 875
    sget-boolean v9, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->useTouchWizGUI:Z
Now save changes and close.
8. Now we need to edit the head of AndroidManifest.xml in SystemUI.apk and add system status to the main core (this is important step to make Torch and Reboot toggles work!!).
Before:
Code:
<?xml version="1.0" encoding="utf-8"?>
[B][COLOR="Red"]<manifest android:versionCode="16" android:versionName="4.1.2-N7000XXLSZ" package="com.android.systemui" coreApp="true"[/COLOR][/B]
  xmlns:android="http://schemas.android.com/apk/res/android">
After:
Code:
<?xml version="1.0" encoding="utf-8"?>
[B][COLOR="Red"]<manifest android:versionCode="16" android:versionName="4.1.2-N7000XXLSZ" package="com.android.systemui" coreApp="true" [COLOR="Blue"]android:sharedUserId="android.uid.system" android:process="system"[/COLOR][/COLOR][/B]
  xmlns:android="http://schemas.android.com/apk/res/android">
9. Download the following smalis and add them to smali folder in SystemUI.apk (there are 2 wanam folders, put the correct one inside its corresponding folder inside SystemUI.apk\smali folder).
10. Now we have finished from modifying SystemUI.apk, Recompile AND SIGN the finished project!!!.
11. Now since SystemUI.apk is signed, it will not work properly until we disable signature check on "services.jar". So backsmali services.jar file and navigate to classout\com\android\server\pm folder and open PackageManagerService.smali and search for ".method static compareSignatures" and change the entire method to:
Code:
.method static compareSignatures([Landroid/content/pm/Signature;[Landroid/content/pm/Signature;)I
    .registers 9
    .parameter "s1"
    .parameter "s2"

    .prologue
    const/4 v6, 0x0

    const-string v3, "Wanam: PackageManager"

    const-string v4, "Skip signature check."

    invoke-static {v3, v4}, Landroid/util/Slog;->e(Ljava/lang/String;Ljava/lang/String;)I

    return v6

.end method
Save changes and recompile (smali) services.jar file.
12. Download the following system app and resource (LidroidSettings.apk and lidroid-res.apk)
13. Push all files to your phone and... look to the results :D









This is all what I learned and knew from reading here and there..
So if you found these tutorials useful and helpful, just pray for me and nothing else.. :angel:
Please stay safe.. Peace on you all :D

okay im lost when you say i need to install the dependencies how do i it... how do i and do i decompile lidroid-res?? and edit the apktool.yml of the lidroid-res??? adn edit the 2,3,4 ??? how do i do it