[GUIDE] [MOD] Changeable StatusBar Label... - Galaxy Y GT-S5360 Themes and Apps

Hey Guys, I'm back with another guide and with the help of this guide u can create StatusBar Label Mod like the one in Lenox Evolution v2.
StatusBar Label Mod
Screenshot:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
So let's start with Settings.apk. Extract the "settings.zip" and get the smali files and resource files from it.
Step 1
Decompile Settings.apk and put the extracted files in their respective folders.
Step 2
Open ids.xml and add these ids in it
Code:
<item type="id" name="Owner">false</item>
<item type="id" name="name_field">false</item>
<item type="id" name="name">false</item>
Step 3
Now recompile the apk and decompile it again. Now open the public.xml and find these ids.These may not be the same in your apk.
It may differ.I have color coded them to make it easier to distinguish in the upcoming steps
Code:
<public type="layout" name="lenoxlabel" id="[COLOR="Red"]0x7f030008[/COLOR]" />
<public type="id" name="Owner" id="[COLOR="Orange"]0x7f08001d[/COLOR]" />
<public type="id" name="name_field" id="[COLOR="Magenta"]0x7f08001e[/COLOR]" />
<public type="id" name="name" id="[COLOR="Green"]0x7f08001f"[/COLOR] />
Now open smali/com/lenox/label/LenoxLabel.smali and find this method
Code:
.method protected onCreate(Landroid/os/Bundle;)V
And replace the ids in it with the ones from public.xml
Code:
.method protected onCreate(Landroid/os/Bundle;)V
.locals 3
.parameter "bundle"
.prologue
.line 24
invoke-super {p0, p1}, Landroid/app/Activity;->onCreate(Landroid/os/Bundle;)V
.line 25
const v1, [COLOR="Red"]0x7f030008[/COLOR]
invoke-virtual {p0, v1}, Lcom/lenox/label/LenoxLabel;->setContentView(I)V
.line 27
const v1, [COLOR="Orange"]0x7f08001d[/COLOR]
invoke-virtual {p0, v1}, Lcom/lenox/label/LenoxLabel;->findViewById(I)Landroid/view/View;
move-result-object v1
check-cast v1, Landroid/widget/TextView;
iput-object v1, p0, Lcom/lenox/label/LenoxLabel;->owner:Landroid/widget/TextView;
.line 28
const v1, [COLOR="Magenta"]0x7f08001e[/COLOR]
invoke-virtual {p0, v1}, Lcom/lenox/label/LenoxLabel;->findViewById(I)Landroid/view/View;
move-result-object v1
check-cast v1, Landroid/widget/EditText;
iput-object v1, p0, Lcom/lenox/label/LenoxLabel;->name:Landroid/widget/EditText;
.line 29
const v1, [COLOR="Green"]0x7f08001f[/COLOR]
invoke-virtual {p0, v1}, Lcom/lenox/label/LenoxLabel;->findViewById(I)Landroid/view/View;
move-result-object v1
check-cast v1, Landroid/widget/Button;
iput-object v1, p0, Lcom/lenox/label/LenoxLabel;->done:Landroid/widget/Button;
.line 31
const-string v1, "EvoPrefsFile"
const/4 v2, 0x0
invoke-virtual {p0, v1, v2}, Lcom/lenox/label/LenoxLabel;->getSharedPreferences(Ljava/lang/String;I)Landroid/content/SharedPreferences;
move-result-object v0
.line 32
.local v0, sharedPreferences:Landroid/content/SharedPreferences;
const-string v1, "profileName"
const-string v2, "null"
invoke-interface {v0, v1, v2}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
iput-object v1, p0, Lcom/lenox/label/LenoxLabel;->profName:Ljava/lang/String;
.line 33
iget-object v1, p0, Lcom/lenox/label/LenoxLabel;->profName:Ljava/lang/String;
const-string v2, "null"
if-ne v1, v2, :cond_0
.line 34
iget-object v1, p0, Lcom/lenox/label/LenoxLabel;->owner:Landroid/widget/TextView;
const-string v2, "Lenox"
invoke-virtual {v1, v2}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V
.line 39
:goto_0
iget-object v1, p0, Lcom/lenox/label/LenoxLabel;->done:Landroid/widget/Button;
new-instance v2, Lcom/lenox/label/LenoxLabel$1;
invoke-direct {v2, p0}, Lcom/lenox/label/LenoxLabel$1;->(Lcom/lenox/label/LenoxLabel;)V
invoke-virtual {v1, v2}, Landroid/widget/Button;->setOnClickListener(Landroid/view/View$OnClickListener;)V
.line 55
return-void
.line 36
:cond_0
iget-object v1, p0, Lcom/lenox/label/LenoxLabel;->owner:Landroid/widget/TextView;
iget-object v2, p0, Lcom/lenox/label/LenoxLabel;->profName:Ljava/lang/String;
invoke-virtual {v1, v2}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V
.line 37
iget-object v1, p0, Lcom/lenox/label/LenoxLabel;->name:Landroid/widget/EditText;
iget-object v2, p0, Lcom/lenox/label/LenoxLabel;->profName:Ljava/lang/String;
invoke-virtual {v1, v2}, Landroid/widget/EditText;->setText(Ljava/lang/CharSequence;)V
goto :goto_0
.end method
Step 5
Now open the res/xml/settings.xml
and add this iconpreferencescreen.You can add it anywhere you want.
I'm assuming you have basic knowledge about preference xmls.
Code:
<com.android.settings.IconPreferenceScreen android:title="StatusBar Label" android:summary="Add label at statusbar">
<intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.lenox.label.LenoxLabel" />
</com.android.settings.IconPreferenceScreen>
Open AndroidManifest.xml and add this
Code:
<activity android:name="com.lenox.label.LenoxLabel">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
</activity>
Now save files and compile the settings.apk and push it to system.
You have to resign the apk and other system apks or disable signature verification. Now you will have somethng like this
Now we can move on to modifying the systemui.apk.Decompile systemui.apk
Step 6
Open status_bar.xml and find this line
Code:
<com.android.systemui.statusbar.IconMerger android:gravity="left" android:orientation="horizontal" android:id="@id/notificationIcons" android:paddingLeft="3.0dip" android:paddingRight="10.0px" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1.0" android:layout_alignParentLeft="true" />
and paste this line above that line
Code:
<com.b16h22.statusbar.ProfileName2 android:textSize="15.0px" android:textStyle="normal" android:textColor="#ffffffff" android:gravity="left" android:layout_gravity="center_vertical" android:id="@id/profile_name2" android:layout_width="wrap_content" android:layout_height="wrap_content" />
Step 7
Open ids.xml and add this id
Code:
<item type="id" name="profile_name2">false</item>
Recompile the apk and decompile it again
Step 8
Open public.xml and note this id
Code:
<public type="id" name="profile_name2" id="0x7f090035" />
Step 9
Open smali/com/b16h22/statusbar/ProfileName2.smali and find this
Code:
const v2, 0x7f090035
replace the id with the id of "profile_name2"
Now recompile the apk and push to system. You should be able to add label from the settings.
Please point out the faults in the guide if there is any.
Downloads
Settings.zip
SystemUI.zip
Click to expand...
Click to collapse
Credits:
b16h22
tentenponce
LenoxDevs​
Click to expand...
Click to collapse

nice guide sir
i have a lil understanding with smali and i think you have to review your codes
because when u implement it with evo mods like what i did
you would encounter bug where panel texts are same even though statusbar got different strings
i got a solution just by changing profileName to profileName2
here are my screenies where texts have been fixed
try your codes with evo and youl get what i mean
thanks again sir

jsarunotres said:
nice guide sir
i have a lil understanding with smali and i think you have to review your codes
because when u implement it with evo mods like what i did
you would encounter bug where panel texts are same even though statusbar got different strings
i got a solution just by changing profileName to profileName2
here are my screenies where texts have been fixed
try your codes with evo and youl get what i mean
thanks again sir
Click to expand...
Click to collapse
Sorry, I can't understand u......

if u port your settings.zip to evomods.apk
the same text would appear to Label Name text panel and Set profile name text panel
as simple as that

jsarunotres said:
if u port your settings.zip to evomods.apk
the same text would appear to Label Name text panel and Set profile name text panel
as simple as that
Click to expand...
Click to collapse
Ohhk....
Check ur PM..

Settings.zip updated with some changes in smali files...
Thanks to @jsarunotres

help sir
i always got an error saying error mismatch parsing of xml at android manifest, i almost got it but i can't recompile it cuz of this, please help sir

KenEmerenciana said:
i always got an error saying error mismatch parsing of xml at android manifest, i almost got it but i can't recompile it cuz of this, please help sir
Click to expand...
Click to collapse
Can u provide the log?

MuSaddiq1410 said:
Can u provide the log?
Click to expand...
Click to collapse
at sir op, nevermind that sir i got it, i compiled my settings and it works, BUT i'm stuck at step 6, i can't seem to find the line you said, this line <com.android.systemui.statusbar.IconMerger android:gravity="left" androidrientation="..........
i can't find it in hyperion 8 final, please help me sir, the statusbar is the only thing i'm not done with

KenEmerenciana said:
at sir op, nevermind that sir i got it, i compiled my settings and it works, BUT i'm stuck at step 6, i can't seem to find the line you said, this line <com.android.systemui.statusbar.IconMerger android:gravity="left" androidrientation="..........
i can't find it in hyperion 8 final, please help me sir, the statusbar is the only thing i'm not done with
Click to expand...
Click to collapse
In Hyperion 8 Final find this line..
Code:
<com.android.systemui.statusbar.IconMerger android:gravity="center_vertical" android:orientation="horizontal" android:id="@id/notificationIcons" android:paddingLeft="6.0dip" android:layout_width="0.0dip" android:layout_height="fill_parent" android:layout_weight="1.0" android:layout_alignParentLeft="true" />

plz make an app to change the status bar label whenever a user want....

Excuse me OP, but can I ask to edit the thread to change ,my name in the credits and make it LenoxDevs especially tentenponce, he has the original idea in implementing it in LenoxEvolution. Thanks. Nice guide though.

PineappleOwl said:
Excuse me OP, but can I ask to edit the thread to change ,my name in the credits and make it LenoxDevs especially tentenponce, he has the original idea in implementing it in LenoxEvolution. Thanks. Nice guide though.
Click to expand...
Click to collapse
Ya sure I will change it and Thanks

good work

get error at stock settings
sir,why i get error resource entry already defined when i decompile settings after i edit ids.xml.can you explain

Dragonslayer656 said:
sir,why i get error resource entry already defined when i decompile settings after i edit ids.xml.can you explain
Click to expand...
Click to collapse
It is because you already have that entry defined in ids.xml
In other words you have wrote the same line twice or when you copied the line from the guide it was already in the xml
In notepad++ if you highlight an entry it will also highlight any duplicates
Apktool would have told you which line was already defined
Just delete the duplicate line

Dragonslayer656 said:
sir,why i get error resource entry already defined when i decompile settings after i edit ids.xml.can you explain
Click to expand...
Click to collapse
As Marcussmith2626 told u have wrote the the same id twice

sorry but it finished
marcussmith2626 said:
It is because you already have that entry defined in ids.xml
In other words you have wrote the same line twice or when you copied the line from the guide it was already in the xml
In notepad++ if you highlight an entry it will also highlight any duplicates
Apktool would have told you which line was already defined
Just delete the duplicate line
Click to expand...
Click to collapse
thanks sir.i have sucessfully finished this.thanks

jsarunotres said:
nice guide sir
i have a lil understanding with smali and i think you have to review your codes
because when u implement it with evo mods like what i did
you would encounter bug where panel texts are same even though statusbar got different strings
i got a solution just by changing profileName to profileName2
here are my screenies where texts have been fixed
try your codes with evo and youl get what i mean
thanks again sir
Click to expand...
Click to collapse
Can I get ur evo mods.apk
Sent from my GT-S6102 using Xparent BlueTapatalk 2

thanks sir.i will study this guide of yours

Related

[GUIDE][MOD][GB]Settings Shortcut in StatusBar [New method] 25/02/2013

Well,this new method is much much easier than the old method.Minimal smali editing is involved.So even newbies can follow it.
Click to expand...
Click to collapse
You are going to need
1.SystemUI.apk
2.Apk manager,virtuos ten studio or any apk compiling/decompiling tool
3.Notepad++
4.Patience and some time.
Click to expand...
Click to collapse
STEP 1Decompile your SystemUI.apk and go to status_bar_expanded.xml.Open the file and look for this (stock systemUI).
Code:
<com.android.systemui.statusbar.CarrierLabel android:textSize="17.659973dip" android:textColor="#ffffffff" android:layout_gravity="center_vertical" android:orientation="vertical" android:paddingBottom="1.0dip" android:layout_width="0.0dip" android:layout_height="wrap_content" android:layout_marginLeft="5.0dip" android:layout_marginTop="1.0dip" android:layout_weight="1.0" />
paste this code below that
Code:
<ImageView android:layout_gravity="center_vertical" android:layout_width="wrap_content" android:layout_height="fill_parent" android:src="@drawable/ic_notify_quicksettings"[COLOR="Red"] android:onClick="settingsButton"[/COLOR] />
Now save the file.
Code:
[COLOR="Red"] android:onClick="settingsButton"[/COLOR]
is an xml attribute used to call a method when pressing something.Now the settingsButton is the name of the method.
Note;It doesnt matter where you put the code for settings button in statusbar expanded.The above steps are for sgy users.You can put that code anywhere you want.But think logical and use common sense.
STEP 2 Now we can add the method settingsButton to StatusBarService.smali.Open the file and look for the code
Code:
# virtual methods
Paste this method below
Code:
.method public settingsButton(Landroid/view/View;)V
.locals 3
.parameter "v"
.prologue
.line 1717
invoke-virtual {p1}, Landroid/view/View;->getContext()Landroid/content/Context;
move-result-object v0
new-instance v1, Landroid/content/Intent;
const-string v2, "android.settings.SETTINGS"
invoke-direct {v1, v2}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
const/high16 v2, 0x1000
invoke-virtual {v1, v2}, Landroid/content/Intent;->setFlags(I)Landroid/content/Intent;
move-result-object v1
invoke-virtual {v0, v1}, Landroid/content/Context;->startActivity(Landroid/content/Intent;)V
invoke-virtual {p0}, Lcom/android/systemui/statusbar/StatusBarService;->animateCollapse()V
.line 1720
return-void
.end method
Now save the file.
android.settings.SETTINGS is the intent for calling settings app activity.You can change the intent to call diffrent activities.For example
android.settings.WIRELESS_SETTINGS -wireless and network settings
android.settings.WIFI_SETTINGS -Wifi settings
android.intent.action.POWER_USAGE_SUMMARY -Battery usage summary
Click to expand...
Click to collapse
STEP 3Now download and extract this Settings_shortcut_drawables.zip.Put the ic_notify_quicksettings.xml inside your drawable folder and the the other two pngs inside drawable-ldpi folder.
STEP 4Now compile and push.
Before asking doubts think twice always.If there is any error in the codes,do let me know.Happy to help.​
Click to expand...
Click to collapse
Old method
Actually this mod is not made by me.I've just ported it and found the way to implement this in other roms.I've studied the SystemUI.apk from the theme by C.O.D.<D.J> for creed's rom.So all credit goes to him
EDIT:There is a small correction in the code
Code:
invoke-direct {v0, p0}, Lcom/android/systemui/statusbar/StatusBarService$8;-><init>(Lcom/android/systemui/statusbar/StatusBarService;)V
.I've forgot to add <init> after 'StatusBarService$8;->' in the guide.Thanks to 'chevanlol360' for pointing out this error.
Click to expand...
Click to collapse
It's easy if you follow every step correctly
STEP 1: Decompile the SystemUI.apk.There are several threads around xda to show you how to decompile an apk.Navigate to res/layout/ and find status_bar_expanded.xml.Find the following code in the file
Code:
<com.android.systemui.statusbar.CarrierLabel android:textSize="17.659973dip" android:textColor="#ffffffff" android:layout_gravity="center_vertical" android:orientation="vertical" android:paddingBottom="1.0dip" android:layout_width="0.0dip" android:layout_height="wrap_content" android:layout_marginLeft="5.0dip" android:layout_marginTop="1.0dip" android:layout_weight="1.0" />
Paste this code just below it
Code:
<ImageView android:layout_gravity="center_vertical" android:id="@id/settings_button" android:paddingLeft="0.0dip" android:paddingTop="0.0dip" android:paddingRight="8.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:src="@drawable/ic_notify_quicksettings" android:contentDescription="@string/accessibility_settings_button" />
Now save and close the file.
STEP 2.Open res/values/strings.xml.And add this line at the end
Code:
<string name="accessibility_settings_button">System settings.</string>
Save and close the file
STEP 3.Open res/values/ids.xml and paste this code at the end
Code:
<item type="id" name="settings_button">false</item>
Save and close the file.
STEP 4.Now extract the files from the attached zip.Take "ic_notify_quicksettings.xml' and put it in res/drawable/.Take 'ic_settings_normal.png' and 'ic_settings_pressed.png' and put it in res/drawable-ldpi/.
Now recompile the apk and push it to system/app to make sure the settings button is there and everything look right.Now decompile that systemUI.apk again.Navigate to res/values/ .We need to find an id from public.xml
STEP 5.Now open public.xml and find this line
Code:
<public type="id" name="settings_button" id="[COLOR="Red"]0x7f090027[/COLOR]" />
Remember the id highlighted in red above.We need to use it.
STEP 6.Open StatusBarService.smali and find this line of code
Code:
.field mScrollView:Landroid/widget/ScrollView;
Paste this code below it
Code:
.field mSettingsBut:Landroid/view/View;
.field private mSettingsButListener:Landroid/view/View$OnClickListener;
Now find this code
Code:
iput-object v0, p0, Lcom/android/systemui/statusbar/StatusBarService;->mStopTracing:Ljava/lang/Runnable;
Paste this code below
Code:
.line 1703
new-instance v0, Lcom/android/systemui/statusbar/StatusBarService$8;
invoke-direct {v0, p0}, Lcom/android/systemui/statusbar/StatusBarService$8;-><init>(Lcom/android/systemui/statusbar/StatusBarService;)V
iput-object v0, p0, Lcom/android/systemui/statusbar/StatusBarService;->mSettingsButListener:Landroid/view/View$OnClickListener;
return-void
Now again find this code
Code:
iput v7, p0, Lcom/android/systemui/statusbar/StatusBarService;->mEdgeBorder:I
And paste this code below
Code:
.line 333
const v7, [COLOR="Red"]0x7f090027[/COLOR]
invoke-virtual {v1, v7}, Lcom/android/systemui/statusbar/ExpandedView;->findViewById(I)Landroid/view/View;
move-result-object v7
iput-object v7, p0, Lcom/android/systemui/statusbar/StatusBarService;->mSettingsBut:Landroid/view/View;
.line 334
iget-object v7, p0, Lcom/android/systemui/statusbar/StatusBarService;->mSettingsBut:Landroid/view/View;
iget-object v8, p0, Lcom/android/systemui/statusbar/StatusBarService;->mSettingsButListener:Landroid/view/View$OnClickListener;
invoke-virtual {v7, v8}, Landroid/view/View;->setOnClickListener(Landroid/view/View$OnClickListener;)V
The id highlighted in red must be the same as the id from public.xml.So make sure it's the same.Now save and close the file.
STEP 7.Take 'StatusBarService$8.smali' from the attached zip an put it in com/android/systemui/statusbar/.
STEP 8.Now recompile the apk and push it to system/app/ and put the permission rw--r--r--.
If you want to get the feel of it in your stock statusbar i've made one for you just in case. Download it from here:
DOWNLOAD
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Flash it through recovery.If you are running an odexed rom,delete SystemUI.odex from system/app before you flash the zip.​
Awesome tutorial....
Will impliment this in my upcoming custom rom....lol
great tutorial, but stuck on first step as i cant find those lines in my statusbarexpanded.xml , btw i have a galaxy gio but here is my systemui, can you take a look? :good:
alkspo said:
great tutorial, but stuck on first step as i cant find those lines in my statusbarexpanded.xml , btw i have a galaxy gio but here is my systemui, can you take a look? :good:
Click to expand...
Click to collapse
I'll look into it.I'm not near my pc.Actually step 1 puts the settings left to carrier text.You can add that code before the code for clear button.
sent while doin' some burnouts
alright, will tr, thanks
How to move 15toogle to down settings button
alkspo said:
great tutorial, but stuck on first step as i cant find those lines in my statusbarexpanded.xml , btw i have a galaxy gio but here is my systemui, can you take a look? :good:
Click to expand...
Click to collapse
if the Statusbar have this code :
Code:
.line 338
.local v4, qsv:Lcom/android/systemui/statusbar/quickpanel/QuickSettingsView;
const-string v8, "ro.csc.sales_code"
invoke-static {v8}, Landroid/os/SystemProperties;->get(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
.line 339
.local v1, code:Ljava/lang/String;
const-string v8, "XEC"
invoke-virtual {v8, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v8
if-eqz v8, :cond_1
you can delete it ,
If the statusbar have this :
Code:
.line 340
const v8, 0x7f030003
invoke-static {p1, v8, v10}, Landroid/view/View;->inflate(Landroid/content/Context;ILandroid/view/ViewGroup;)Landroid/view/View;
move-result-object v4
.end local v4 #qsv:Lcom/android/systemui/statusbar/quickpanel/QuickSettingsView;
check-cast v4, Lcom/android/systemui/statusbar/quickpanel/QuickSettingsView;
.line 348
.restart local v4 #qsv:Lcom/android/systemui/statusbar/quickpanel/QuickSettingsView;
:goto_0
iget-object v8, p0, Lcom/android/systemui/statusbar/StatusBarService;->mExpandedView:Lcom/android/systemui/statusbar/ExpandedView;
invoke-virtual {v8, v4, v13}, Lcom/android/systemui/statusbar/ExpandedView;->addView(Landroid/view/View;I)V
and delete this :
Code:
.line 344
:cond_1
const v8, 0x3030003
invoke-static {p1, v8, v10}, Landroid/view/View;->inflate(Landroid/content/Context;ILandroid/view/ViewGroup;)Landroid/view/View;
move-result-object v4
check-cast v4, Lcom/lidroid/systemui/quickpanel/PowerWidget;
.local v4, qsv:Lcom/lidroid/systemui/quickpanel/PowerWidget;
invoke-virtual {v4}, Lcom/lidroid/systemui/quickpanel/PowerWidget;->setupWidget()V
goto :goto_0
you can change into :
so the line like as :
Code:
.line 337
const/4 v4, 0x0
.line 344
const v8, 0x3030003
invoke-static {p1, v8, v10}, Landroid/view/View;->inflate(Landroid/content/Context;ILandroid/view/ViewGroup;)Landroid/view/View;
move-result-object v4
check-cast v4, Lcom/lidroid/systemui/quickpanel/PowerWidget;
.line 348
.local v4, qsv:Lcom/lidroid/systemui/quickpanel/PowerWidget;
const/4 v9, 0x1
invoke-virtual {v4}, Lcom/lidroid/systemui/quickpanel/PowerWidget;->setupWidget()V
iget-object v8, p0, Lcom/android/systemui/statusbar/StatusBarService;->mExpandedView:Lcom/android/systemui/statusbar/ExpandedView;
invoke-virtual {v8, v4, v9}, Lcom/android/systemui/statusbar/ExpandedView;->addView(Landroid/view/View;I)V
.line 352
new-instance v8, Landroid/widget/LinearLayout;
invoke-direct {v8, p1}, Landroid/widget/LinearLayout;-><init>(Landroid/content/Context;)V
iput-object v8, p0, Lcom/android/systemui/statusbar/StatusBarService;->mMiniCon:Landroid/widget/LinearLayout;
.line 353
iget-object v8, p0, Lcom/android/systemui/statusbar/StatusBarService;->mMiniCon:Landroid/widget/LinearLayout;
const/4 v9, 0x1
invoke-virtual {v8, v9}, Landroid/widget/LinearLayout;->setOrientation(I)V
.line 354
iget-object v8, p0, Lcom/android/systemui/statusbar/StatusBarService;->mExpandedView:Lcom/android/systemui/statusbar/ExpandedView;
invoke-virtual {v8, v12}, Lcom/android/systemui/statusbar/ExpandedView;->findViewById(I)Landroid/view/View;
move-result-object v8
check-cast v8, Landroid/widget/LinearLayout;
iget-object v9, p0, Lcom/android/systemui/statusbar/StatusBarService;->mMiniCon:Landroid/widget/LinearLayout;
invoke-virtual {v8, v9, v13}, Landroid/widget/LinearLayout;->addView(Landroid/view/View;I)V
.line 358
const v8, 0x7f030005
invoke-static {p1, v8, v10}, Landroid/view/View;->inflate(Landroid/content/Context;ILandroid/view/ViewGroup;)Landroid/view/View;
move-result-object v8
check-cast v8, Lcom/android/systemui/statusbar/CallOnGoingView;
iput-object v8, p0, Lcom/android/systemui/statusbar/StatusBarService;->mCallOnGoingView:Lcom/android/systemui/statusbar/CallOnGoingView;
.line 359
iget-object v8, p0, Lcom/android/systemui/statusbar/StatusBarService;->mCallOnGoingView:Lcom/android/systemui/statusbar/CallOnGoingView;
iput-object p0, v8, Lcom/android/systemui/statusbar/CallOnGoingView;->mService:Lcom/android/systemui/statusbar/StatusBarService;
.line 361
return-void
.end method
Here you go , iam modify you systemui . view you new systemui . and Trying to Experiment xD . view my attatch
and i thinks the Guide not working on CM .
Thanks you, AWESOME Guide
Thanks for this tutorial mate! awesome as always will try this after i come back..
Boooom..! Pin! Thanks for this great tut bro... now i know.. i really mis the smalis.. haha i really hate smali...
____________________________________
Reserve for future use..
send thru postal codes supported with busybox command again
thanks for doing it for me, but my device is mdpi not hdpi, so will not work, can you make it again?
alkspo said:
thanks for doing it for me, but my device is mdpi not hdpi, so will not work, can you make it again?
Click to expand...
Click to collapse
If the resolution png (too small) with a resolution of handle you then I rename a ldpi, if png (fit) with a screen resolution of your handle then I rename a mdpi, if the png does not fit the screen resolution of your handle (too big) then I rename a hdpi .
thats trick to make png no zoom ( big or small icon ) . and make to past you screen resolution .
try my mods . push to system/app
sorry for bad english
oh i see what you mean, yes so it wont zoom in thanks, i tried it but it looks a bit messed up, can you put the date and the setting and x button under the toggles? or is that too much trouble ? o: i like have the toggle at the very top, and might fix overlap if do that thanks alot here is screenie
Thanks for the tut
Inviato dal mio GT-S5830i con Tapatalk 2
The codes in sgyd differ a little bit... failed on my first try... trying it again
hell_lock said:
The codes in sgyd differ a little bit... failed on my first try... trying it again
Click to expand...
Click to collapse
Try it in your sgy.It's easier to port if it works.
sent while doin' some burnouts
b16h22 said:
Try it in your sgy.It's easier to port if it works.
sent while doin' some burnouts
Click to expand...
Click to collapse
Yudhiez managed to make it fully working for me, but the date and settings and clear button is on top of toggles, while the one in your screenshot is below, how do i rearrange it? o:
Haha told it to samsoul16 bro he had this questions now u explain it good thanks pressed
Sent from my GT-S5360 using Xparent ICS Blue Tapatalk 2
Wow this tutorial is great. Thanks friend.
HYPOCRITES I'm gonna do it blind
HYPOCRITES your messiah was never mine!
beautiful. :good:
Galaxy Ace s5830i
Hey,I tried to add this is Galaxy Ace S5830i.
I don't have StatusBarService$7.smali,so I renamed StatusBarService$8.smali to StatusBarService$7.smali,and changed all the StatusBarService$8 lines to StatusBarService$7,the same in StatuBarService.smali,but it still not working,can you help me?
This work on stock deodex? Will try
Sent from my GT-S5360 using xda premium

[TUTORIAL] How to add various framework/Settings mods [Update 5/4/2013]

FEATURED ON XDA NEWS
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
http://www.xda-developers.com/android/add-your-favorite-mods-on-the-sony-xperia-arc/​
SKIP TRACK VIA VOL LONG PRESS
Requirements
1) android.policy.jar
2) APKTOOL
3) Notepad++
4)winrar or 7zip
5) and some patience.
1-STEP
open the android.policy.jar with winrar or 7zip archive and pull classes.dex file to ur apktool folder.
2-STEP
decompile the classes.dex using apktool
for this press shift and right mouse click to open cmd prompt..
then add the cmd in cmd prompt to decompile ..
Code:
java -jar baksmali.jar -o classout/ classes.dex
after that u will get a classout folder in apktool folder.
3-STEP
inside the classout folder navigate to com\android\internal\policy\impl\PhoneWindowManager.smali
once u open PhoneWindowManager.smali add the following lines.
Find:
Code:
.field static final LONG_PRESS_POWER_SHUT_OFF:I = 0x2
.field static final NAVIGATION_BAR_LAYER:I = 0x12
.field static final PHONE_LAYER:I = 0x3
Add the RED color highlighted lines between them
Code:
.field static final LONG_PRESS_POWER_SHUT_OFF:I = 0x2
[COLOR="Red"].field private static final LONG_PRESS_TIMEOUT:I = 0x3e8[/COLOR]
.field static final NAVIGATION_BAR_LAYER:I = 0x12
.field static final PHONE_LAYER:I = 0x3
Find:
Code:
.field mIncallPowerBehavior:I
.field mKeyboardTapVibePattern:[J
.field mKeyguard:Landroid/view/WindowManagerPolicy$WindowState;
Add the RED color highlighted lines between them
Code:
.field mIncallPowerBehavior:I
[COLOR="red"].field mIsLongPress:Z
[/COLOR]
.field mKeyboardTapVibePattern:[J
.field mKeyguard:Landroid/view/WindowManagerPolicy$WindowState;
Find:
Code:
.field private mVolumeDownKeyTriggered:Z
.field private mVolumeUpKeyTriggered:Z
.field mWindowManager:Landroid/view/IWindowManager;
.field mWindowManagerFuncs:Landroid/view/WindowManagerPolicy$WindowManagerFuncs;
Add the RED color highlighted lines between them
Code:
.field private mVolumeDownKeyTriggered:Z
[COLOR="red"].field private final mVolumeDownLongPress:Ljava/lang/Runnable;[/COLOR]
.field private mVolumeUpKeyTriggered:Z
[COLOR="red"].field private final mVolumeUpLongPress:Ljava/lang/Runnable;[/COLOR]
.field mWindowManager:Landroid/view/IWindowManager;
.field mWindowManagerFuncs:Landroid/view/WindowManagerPolicy$WindowManagerFuncs;
Find:
Code:
.line 3586
new-instance v0, Lcom/android/internal/policy/impl/PhoneWindowManager$21;
invoke-direct {v0, p0}, Lcom/android/internal/policy/impl/PhoneWindowManager$21;-><init>(Lcom/android/internal/policy/impl/PhoneWindowManager;)V
iput-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mScreenLockTimeout:Ljava/lang/Runnable;
return-void
.end method
Add the RED color highlighted lines between them
Code:
.line 3586
new-instance v0, Lcom/android/internal/policy/impl/PhoneWindowManager$21;
invoke-direct {v0, p0}, Lcom/android/internal/policy/impl/PhoneWindowManager$21;-><init>(Lcom/android/internal/policy/impl/PhoneWindowManager;)V
iput-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mScreenLockTimeout:Ljava/lang/Runnable;
[COLOR="red"]
new-instance v0, Lcom/android/internal/policy/impl/PhoneWindowManager$23;
invoke-direct {v0, p0}, Lcom/android/internal/policy/impl/PhoneWindowManager$23;-><init>(Lcom/android/internal/policy/impl/PhoneWindowManager;)V
iput-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mVolumeDownLongPress:Ljava/lang/Runnable;
new-instance v0, Lcom/android/internal/policy/impl/PhoneWindowManager$24;
invoke-direct {v0, p0}, Lcom/android/internal/policy/impl/PhoneWindowManager$24;-><init>(Lcom/android/internal/policy/impl/PhoneWindowManager;)V
iput-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mVolumeUpLongPress:Ljava/lang/Runnable;[/COLOR]
return-void
.end method
Find:
Code:
iget-object v3, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mBroadcastWakeLock:Landroid/os/PowerManager$WakeLock;
invoke-virtual {v3}, Landroid/os/PowerManager$WakeLock;->release()V
throw v2
.end method
.method public hasNavigationBar()Z
.registers 2
Add the RED color highlighted lines between them
Code:
iget-object v3, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mBroadcastWakeLock:Landroid/os/PowerManager$WakeLock;
invoke-virtual {v3}, Landroid/os/PowerManager$WakeLock;->release()V
throw v2
.end method
[COLOR="red"].method handleVolumeLongPress(I)V
.registers 6
.parameter "keycode"
.prologue
const/16 v1, 0x18
if-eq p1, v1, :cond_7
iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mVolumeDownLongPress:Ljava/lang/Runnable;
goto :goto_9
:cond_7
iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mVolumeUpLongPress:Ljava/lang/Runnable;
:goto_9
iget-object v1, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mHandler:Landroid/os/Handler;
sget v2, Lcom/android/internal/policy/impl/PhoneWindowManager;->LONG_PRESS_TIMEOUT:I
int-to-long v2, v2
invoke-virtual {v1, v0, v2, v3}, Landroid/os/Handler;->postDelayed(Ljava/lang/Runnable;J)Z
return-void
.end method
.method handleVolumeLongPressAbort()V
.registers 3
.prologue
iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mHandler:Landroid/os/Handler;
iget-object v1, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mVolumeUpLongPress:Ljava/lang/Runnable;
invoke-virtual {v0, v1}, Landroid/os/Handler;->removeCallbacks(Ljava/lang/Runnable;)V
iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mHandler:Landroid/os/Handler;
iget-object v1, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mVolumeDownLongPress:Ljava/lang/Runnable;
invoke-virtual {v0, v1}, Landroid/os/Handler;->removeCallbacks(Ljava/lang/Runnable;)V
return-void
.end method[/COLOR]
.method public hasNavigationBar()Z
.registers 2
Find:
Code:
.line 2841
invoke-direct {p0}, Lcom/android/internal/policy/impl/PhoneWindowManager;->cancelPendingScreenshotChordAction()V
goto :goto_c2
.line 2843
Add the RED color highlighted lines between them
Code:
.line 2841
invoke-direct {p0}, Lcom/android/internal/policy/impl/PhoneWindowManager;->cancelPendingScreenshotChordAction()V
[COLOR="red"]invoke-virtual {p0}, Lcom/android/internal/policy/impl/PhoneWindowManager;->handleVolumeLongPressAbort()V
invoke-virtual {p0}, Lcom/android/internal/policy/impl/PhoneWindowManager;->isMusicActive()Z
move-result v12
if-eqz v12, :cond_c2
move-object/from16 v0, p0
iget-boolean v0, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mIsLongPress:Z
move v12, v0
if-nez v12, :cond_c2
and-int/lit8 v12, v10, 0x1
if-nez v12, :cond_c2
const/4 v12, 0x3
move-object/from16 v0, p0
invoke-virtual {v0, v12, v8}, Lcom/android/internal/policy/impl/PhoneWindowManager;->handleVolumeKey(II)V
[/COLOR]
goto :goto_c2
.line 2843
Find:
Code:
.line 2853
invoke-direct {p0}, Lcom/android/internal/policy/impl/PhoneWindowManager;->cancelPendingScreenshotChordAction()V
goto/16 :goto_c2
.line 2879
Add the RED color highlighted lines between them
Code:
.line 2853
invoke-direct {p0}, Lcom/android/internal/policy/impl/PhoneWindowManager;->cancelPendingScreenshotChordAction()V
[COLOR="Red"] invoke-virtual {p0}, Lcom/android/internal/policy/impl/PhoneWindowManager;->handleVolumeLongPressAbort()V
invoke-virtual {p0}, Lcom/android/internal/policy/impl/PhoneWindowManager;->isMusicActive()Z
move-result v12
if-eqz v12, :cond_c2
move-object/from16 v0, p0
iget-boolean v0, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mIsLongPress:Z
move v12, v0
if-nez v12, :cond_c2
and-int/lit8 v12, v10, 0x1
if-nez v12, :cond_c2
const/4 v12, 0x3
move-object/from16 v0, p0
invoke-virtual {v0, v12, v8}, Lcom/android/internal/policy/impl/PhoneWindowManager;->handleVolumeKey(II)V[/COLOR]
goto/16 :goto_c2
.line 2879
Find:
Code:
if-nez v12, :cond_23
.line 2894
const/4 v12, 0x3
invoke-virtual {p0, v12, v8}, Lcom/android/internal/policy/impl/PhoneWindowManager;->handleVolumeKey(II)V
goto/16 :goto_23
.line 2902
Add the RED color highlighted lines between them
Code:
if-nez v12, :cond_23
.line 2894
const/4 v12, 0x3
[COLOR="red"]const/4 v7, 0x0[/COLOR]
invoke-virtual {p0, v12, v8}, Lcom/android/internal/policy/impl/PhoneWindowManager;->handleVolumeKey(II)V
[COLOR="red"]move v0, v7
move-object/from16 v1, p0
iput-boolean v0, v1, Lcom/android/internal/policy/impl/PhoneWindowManager;->mIsLongPress:Z
move-object/from16 v0, p0
invoke-virtual {v0, v8}, Lcom/android/internal/policy/impl/PhoneWindowManager;->handleVolumeLongPress(I)V
[/COLOR]
goto/16 :goto_23
.line 2902
Find:
Code:
.method sendCloseSystemWindows(Ljava/lang/String;)V
.registers 3
.parameter "reason"
.prologue
.line 3246
iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mContext:Landroid/content/Context;
invoke-static {v0, p1}, Lcom/android/internal/policy/impl/PhoneWindowManager;->sendCloseSystemWindows(Landroid/content/Context;Ljava/lang/String;)V
.line 3247
return-void
.end method
.method setAttachedWindowFrames(Landroid/view/WindowManagerPolicy$WindowState;IILandroid/view/WindowManagerPolicy$WindowState;ZLandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;)V
.registers 12
.parameter "win"
Add the RED color highlighted lines between them
Code:
.method sendCloseSystemWindows(Ljava/lang/String;)V
.registers 3
.parameter "reason"
.prologue
.line 3246
iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mContext:Landroid/content/Context;
invoke-static {v0, p1}, Lcom/android/internal/policy/impl/PhoneWindowManager;->sendCloseSystemWindows(Landroid/content/Context;Ljava/lang/String;)V
.line 3247
return-void
.end method
[COLOR="red"].method protected sendFMBroadcast(Landroid/content/Intent;)V
.registers 3
.parameter "intent"
.prologue
iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mContext:Landroid/content/Context;
invoke-virtual {v0, p1}, Landroid/content/Context;->sendBroadcast(Landroid/content/Intent;)V
return-void
.end method
.method protected sendMediaButtonEvent(I)V
.registers 15
.parameter "code"
.prologue
invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J
move-result-wide v1
.local v1, eventtime:J
new-instance v11, Landroid/content/Intent;
const-string v4, "android.intent.action.MEDIA_BUTTON"
const/4 v5, 0x0
invoke-direct {v11, v4, v5}, Landroid/content/Intent;-><init>(Ljava/lang/String;Landroid/net/Uri;)V
.local v11, downIntent:Landroid/content/Intent;
new-instance v0, Landroid/view/KeyEvent;
const/4 v5, 0x0
const/4 v7, 0x0
move-wide v3, v1
move v6, p1
invoke-direct/range {v0 .. v7}, Landroid/view/KeyEvent;-><init>(JJIII)V
.local v0, downEvent:Landroid/view/KeyEvent;
const-string v4, "android.intent.extra.KEY_EVENT"
invoke-virtual {v11, v4, v0}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Landroid/os/Parcelable;)Landroid/content/Intent;
iget-object v4, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mContext:Landroid/content/Context;
const/4 v5, 0x0
invoke-virtual {v4, v11, v5}, Landroid/content/Context;->sendOrderedBroadcast(Landroid/content/Intent;Ljava/lang/String;)V
new-instance v12, Landroid/content/Intent;
const-string v4, "android.intent.action.MEDIA_BUTTON"
const/4 v5, 0x0
invoke-direct {v12, v4, v5}, Landroid/content/Intent;-><init>(Ljava/lang/String;Landroid/net/Uri;)V
.local v12, upIntent:Landroid/content/Intent;
new-instance v3, Landroid/view/KeyEvent;
const/4 v8, 0x1
const/4 v10, 0x0
move-wide v4, v1
move-wide v6, v1
move v9, p1
invoke-direct/range {v3 .. v10}, Landroid/view/KeyEvent;-><init>(JJIII)V
.local v3, upEvent:Landroid/view/KeyEvent;
const-string v4, "android.intent.extra.KEY_EVENT"
invoke-virtual {v12, v4, v3}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Landroid/os/Parcelable;)Landroid/content/Intent;
iget-object v4, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mContext:Landroid/content/Context;
const/4 v5, 0x0
invoke-virtual {v4, v12, v5}, Landroid/content/Context;->sendOrderedBroadcast(Landroid/content/Intent;Ljava/lang/String;)V
return-void
.end method[/COLOR]
.method setAttachedWindowFrames(Landroid/view/WindowManagerPolicy$WindowState;IILandroid/view/WindowManagerPolicy$WindowState;ZLandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;)V
.registers 12
.parameter "win"
4-STEP
add the following smali files in classoutcom\android\internal\policy\impl
PhoneWindowManager$23.smali
PhoneWindowManager$24.smali
(i have provided these two files in resources.zip attached below this post)
5-STEP
recompiling
come back to apktool main folder.and in the cmd prompt type this cmd to recompile..
Code:
java -Xmx512M -jar smali.jar classout/ -o new-classes.dex
and once its recompiled rename the new-classes.dex to classes.dex
and open the android.policy.jar with winrar archive drag the newly recompiled classes.dex into the archive and select compression level to store.
and ur done..
6-STEP
push the android.policy.jar into system/framework..
flash it via cwm using a flashable zip (i have also provided a flashable zip formate see attachment)
and u have a working skip to track in ur rom
Camera Button to play/pause music​
1-STEP
decompile android.policy.jar
and open com\android\internal\policy\impl\PhoneWindowManager.smali
2-STEP
in phonewindowmanager.smalli find this line
.method public interceptKeyBeforeQueueing
now at the end of this method find this and add the red marked code
Code:
.line 2794
nop
nop
nop
nop
nop
:sswitch_data_28a
.sparse-switch
0x5 -> :sswitch_61
0x6 -> :sswitch_16c
0x18 -> :sswitch_9a
0x19 -> :sswitch_9a
0x1a -> :sswitch_1ae
[COLOR="Red"]0x1b -> :sswitch_195[/COLOR]
0x4f -> :sswitch_236
0x55 -> :sswitch_228
0x56 -> :sswitch_236
0x57 -> :sswitch_236
0x58 -> :sswitch_236
0x59 -> :sswitch_236
0x5a -> :sswitch_236
0x5b -> :sswitch_236
0x7e -> :sswitch_228
0x7f -> :sswitch_228
0x82 -> :sswitch_236
0xa4 -> :sswitch_9a
0x400 -> :sswitch_265
.end sparse-switch
(1b is the KEYCODE_CAMERA hex code, see docs:KEYCODE_CAMERA
so after adding that code it should look like this....
now scroll few lines up to find this line...
Code:
.line 3000
.end local v3 #ex:Landroid/os/RemoteException;
.end local v11 #telephonyService:Lcom/android/internal/telephony/ITelephony;
[COLOR="Blue"]:sswitch_265[/COLOR]
if-eqz v2, :cond_27f
if-nez v9, :cond_27f
.line 3001
iget-object v12, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mBroadcastWakeLock:Landroid/os/PowerManager$WakeLock;
invoke-virtual {v12}, Landroid/os/PowerManager$WakeLock;->acquire()V
.line 3002
iget-object v12, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mHandler:Landroid/os/Handler;
new-instance v13, Lcom/android/internal/policy/impl/PhoneWindowManager$PassVendorKey;
new-instance v14, Landroid/view/KeyEvent;
now see the above code where marked in blue from there leave some space like this...
next add these lines between the spaces
Code:
[COLOR="Red"]:sswitch_195
if-eqz v2, :cond_195
invoke-virtual {p0}, Lcom/android/internal/policy/impl/PhoneWindowManager;->isScreenOnEarly()Z
move-result v12
if-nez v12, :cond_195
const/16 v12, 0x55
invoke-virtual {p0, v12}, Lcom/android/internal/policy/impl/PhoneWindowManager;->sendMediaButtonEvent(I)V
.line 901
const/4 v12, 0x0
iput-boolean v12, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mIsVolumeAction:Z
:cond_195
goto/16 :goto_23
.line 4000[/COLOR]
so from now its very simple remove all the spaces so it will end up look like this...
once u done it save the file
3-STEP
recompile it
and flash it and enjoy the new mod..
SMALL APPS FOR CM BASED ROM
1-STEP
decompile framework-res.apk
goto res/values/strings.xml and add these lines a the end
Code:
<string name="permlab_externalTaskSwitcher">Start as an external task switcher</string>
<string name="permdesc_externalTaskSwitcher">Allows the application to be an external task switcher replacing the native task switcher</string>
<string name="permlab_smallapp">Small application overlay</string>
<string name="permdesc_smallapp">Allows running movable small applications on top of other applications.</string>
open AndroidManifest.xml
and add the following lines
Code:
<permission android:name="android.permission.SYSTEM_ALERT_WINDOW" android:label="@string/permlab_systemAlertWindow" android:description="@string/permdesc_systemAlertWindow" android:protectionLevel="dangerous" android:permissionGroup="android.permission-group.SYSTEM_TOOLS" />
and
Code:
<permission android:name="com.sony.smallapp.permission.SMALLAPP" android:label="@string/permlab_smallapp" android:description="@string/permdesc_smallapp" android:protectionLevel="dangerous" />
like this shown in the pic..
done recompile the framework-res.apk
2-STEP
decompile android.policy.jar
and open com\android\internal\policy\impl\PhoneWindowManager.smal
and add the red marked lines
Code:
.field static final SEARCH_BAR_LAYER:I = 0x4
.field static final SECURE_SYSTEM_OVERLAY_LAYER:I = 0x17
.field static final SEPARATE_TIMEOUT_FOR_SCREEN_SAVER:Z = false
.field static final SHOW_PROCESSES_ON_ALT_MENU:Z = false
[COLOR="red"].field static final SHOW_STARTING_ANIMATIONS:Z = true
.field static final SMALLAPP_LAYER:I = 0x3[/COLOR]
.field static final STATUS_BAR_LAYER:I = 0xf
.field static final STATUS_BAR_PANEL_LAYER:I = 0x10
.field static final STATUS_BAR_SUB_PANEL_LAYER:I = 0xe
and find these lines in the same file.
Code:
[COLOR="Blue"].method public checkAddPermission(Landroid/view/WindowManager$LayoutParams;)I
.locals 4
.parameter "attrs"
.prologue
const/4 v2, 0x0
.line 1609
iget v1, p1, Landroid/view/WindowManager$LayoutParams;->type:I
.line 1611
.local v1, type:I
const/16 v3, 0x7d0
if-lt v1, v3, :cond_0
const/16 v3, 0xbb7
if-le v1, v3, :cond_1
.line 1643
:cond_0
:goto_0
return v2
.line 1615
:cond_1
const/4 v0, 0x0
.line 1616
.local v0, permission:Ljava/lang/String;
sparse-switch v1, :sswitch_data_0
.line 1635
const-string v0, "android.permission.INTERNAL_SYSTEM_WINDOW"
.line 1637
:goto_1
:sswitch_0
if-eqz v0, :cond_0
.line 1638
iget-object v3, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mContext:Landroid/content/Context;
invoke-virtual {v3, v0}, Landroid/content/Context;->checkCallingOrSelfPermission(Ljava/lang/String;)I
move-result v3
if-eqz v3, :cond_0
.line 1640
const/4 v2, -0x8
goto :goto_0
.line 1632
:sswitch_1
const-string v0, "android.permission.SYSTEM_ALERT_WINDOW"
.line 1633
goto :goto_1
.line 1616
nop
:sswitch_data_0
.sparse-switch
0x7d2 -> :sswitch_1
0x7d3 -> :sswitch_1
0x7d5 -> :sswitch_0
0x7d6 -> :sswitch_1
0x7d7 -> :sswitch_1
0x7da -> :sswitch_1
0x7db -> :sswitch_0
0x7dd -> :sswitch_0
0x7e7 -> :sswitch_0
.end sparse-switch
.end method[/COLOR]
no is the funny part replace all the above blue marked lines with the below red marked lines
Code:
[COLOR="red"].method public checkAddPermission(Landroid/view/WindowManager$LayoutParams;)I
.locals 4
.parameter "attrs"
.prologue
const/4 v2, 0x0
.line 1115
iget v1, p1, Landroid/view/WindowManager$LayoutParams;->type:I
.line 1117
.local v1, type:I
const/16 v3, 0x7d0
if-lt v1, v3, :cond_0
const/16 v3, 0xbb7
if-le v1, v3, :cond_1
.line 1152
:cond_0
:goto_0
return v2
.line 1121
:cond_1
const/4 v0, 0x0
.line 1122
.local v0, permission:Ljava/lang/String;
sparse-switch v1, :sswitch_data_0
.line 1144
const-string v0, "android.permission.INTERNAL_SYSTEM_WINDOW"
.line 1146
:goto_1
:sswitch_0
if-eqz v0, :cond_0
.line 1147
iget-object v3, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mContext:Landroid/content/Context;
invoke-virtual {v3, v0}, Landroid/content/Context;->checkCallingOrSelfPermission(Ljava/lang/String;)I
move-result v3
if-eqz v3, :cond_0
.line 1149
const/4 v2, -0x8
goto :goto_0
.line 1137
:sswitch_1
const-string v0, "android.permission.SYSTEM_ALERT_WINDOW"
.line 1138
goto :goto_1
.line 1141
:sswitch_2
const-string v0, "com.sony.smallapp.permission.SMALLAPP"
.line 1142
goto :goto_1
.line 1122
:sswitch_data_0
.sparse-switch
0x7d2 -> :sswitch_1
0x7d3 -> :sswitch_1
0x7d5 -> :sswitch_0
0x7d6 -> :sswitch_1
0x7d7 -> :sswitch_1
0x7da -> :sswitch_1
0x7db -> :sswitch_0
0x7dd -> :sswitch_0
0xbb5 -> :sswitch_2
0xbb6 -> :sswitch_2
.end sparse-switch
.end method[/COLOR]
save it..done now recompile the android.policy.jar
3-STEP
decompile framework.jar
add the whole sony folder (provided in the resources.zip attached below ) in classout/com
and recompile framework.jar
4-STEP
now u need to add some files in system/app
system/etc
system/framework
all the files are provided in resources.zip so just take them and add those files in ur flashable zip
5-STEP
once u flash the mod .u need an Slauncher app to launch the small apps...download it from google play
so its done enjoy the smalls on cm based roms..
Hope it helps u guys
if u guys are having trouble making it ...make a req to me ill make one for u when iam free..
ps-when it comes to making a thread iam really bad at it plz co-operate
if u like my tut plz press thanks
IF u like my work donate me and ATM my device is screwed have to repair it will cost more plz help me to get my device repaired by donating me
HOW TO DONATE ME
Due to some rules paypal donate button is disabled in INDIA. So any one willing to donate me please follow this :
* Login to ur paypal account
* Option "Personal payment" doesn't work for India, please set "Online purchases". and check Goods or Service (preferably service)
* Send desired payment
* Input my paypal email there : [email protected]
* Thank you!
Click to expand...
Click to collapse
How to add xperia S/T lockscreen ,small apps ,magnification glass
Xperia S/T Lockscreen TUT​
requirements.
framework-res.apk
android.policy.jar
notpad++
winrar
knowledge of how to decompile and recompile
If u guys want a good tut for de/recompiling here is good guide by my good friend Stanlin salu
http://forum.xda-developers.com/showthread.php?t=2011254
1-STEP
decompile framework-res.apk
navigate to res/values
and open strings.xml
here add these two at the end (see pic for reference.) and save it
Code:
<string name="permlab_external_lockscreen">xperia lockscreen</string>
<string name="permdesc_external_lockscreen">xperia loxkscreen</string>
2-STEP
in the same values folder
open public.xml
and these strings just below the line show in the below pic and save it
Code:
<public type="string" name="permlab_external_lockscreen" id="0x01040525" />
<public type="string" name="permdesc_external_lockscreen" id="0x01040526" />
IMPORTANT
0x01040525 ,0x01040526 these are called hex codes and should in a proper order
for ex from the above codes the last 4 hex codes should in this way
0x01040524
0x01040525
0x01040526
0x01040527
public.xml sample hexadecimal codes
0x70000000
0x70000001
0x70000002
0x70000003
0x70000004
0x70000005
0x70000006
0x70000007
0x70000008
0x70000009
0x7000000a
0x7000000b
0x7000000c
0x7000000d
0x7000000e
0x7000000f
0x70000010
Click to expand...
Click to collapse
a little info about hex codes
hex codes starts from 0-9 and a-f and so one
so they must in the order according to it.
Click to expand...
Click to collapse
3-STEP
come back to main framework-res folder
and open AndroidManifest.xml
and add these line just below line shown in the pic and save it
Code:
<permission android:label="@string/permlab_external_lockscreen" android:name="com.sonyericsson.permission.EXTERNAL_LOCKSCREEN" android:protectionLevel="signatureOrSystem" android:description="@string/permdesc_external_lockscreen" />
4-STEP
recompile the framework-res.apk
5-STEP
decompile android.policy.jar
navigate to com\android\internal\policy\impl\
and add this ExternalLockScreen.smali and LockPatternKeyguardView.smali file there (smali file is provided by in the resources zip attached in this post)
and recompile it back
6-STEP
i have attached a flashable zip for format in this post below
put the following files it
uxpnxtlockscreen.apk (provided in resorces zip by me)
settings.apk (which supports XS LS , which can be found easily in this forum) (or may be later ill tell how to add them in ur settings)
android.policy.jar
framework-res.apk
zip and flash it..and ur done ...
HOW TO ADD SMALL APPS​
1-STEP
Decompile framework-res.apk
and navigate to res/values/strings.xml
and add these 4 lines at the end as shown in the pic. and save it
Code:
<string name="permlab_smallapp">Small application overlay</string>
<string name="permdesc_smallapp">Allows running movable small applications on top of other applications.</string>
<string name="permlab_externalTaskSwitcher">Start as an external task switcher</string>
<string name="permdesc_externalTaskSwitcher">Allows the application to be an external task switcher replacing the native task switcher</string>
2-STEP
in the same values folder open public.xml
and add these 4 lines below the line shown in the pic and save it
Code:
<public type="string" name="permlab_smallapp" id="0x01040550" />
<public type="string" name="permdesc_smallapp" id="0x01040551" />
<public type="string" name="permlab_externalTaskSwitcher" id="0x01040552" />
<public type="string" name="permdesc_externalTaskSwitcher" id="0x01040553" />
3-STEP
come back to main framework-res folder
and open AndroidManifest.xml
now add this line as shown in the pic
Code:
<permission android:label="@string/permlab_externalTaskSwitcher" android:name="com.sonymobile.permission.EXTERNAL_TASK_SWITCHER" android:protectionLevel="signatureOrSystem" android:description="@string/permdesc_externalTaskSwitcher" />
and this line as shown in pic .and save it
Code:
<permission android:label="@string/permlab_smallapp" android:name="com.sony.smallapp.permission.SMALLAPP" android:protectionLevel="dangerous" android:description="@string/permdesc_smallapp" />
Now recompile the framework-res.apk
4-STEP
decompile framework.jar
and the whole sony folder which consists of small apps samli (i have provided in small apps resources.zip )
recompile it
done
5-STEP
u need some framework files and some permissions files ( provided in resources.zip)
1-etc/permissions
2- small app framework jar file
3-small apps supported services.
4-the small apps
6-STEP
now all mods are ready only thing need is small apps (which i have provided in small apps resources.zip)
and also make u use the small apps supported susyemUI.apk (which can be found in this forum)
put all these files in the flashable zip formate i have provided below..
and enjoy ur small apps
HOW TO ADD THE FAMOUS MAGNIFICATION GLASS TO UR FRAMEWORK..
(a big thanks to AEON WORLD)
1-STEP
decompile ur framework-res.apk
2-STEP
navigate to res/values and edit the following xml's
Dimens.xml add these lines at the end..as shown in the pic
Code:
<dimen name="magnifier_selection_handle_offset_y">44.0dip</dimen>
<dimen name="roundMagnificationRadius">55.0dip</dimen>
<dimen name="rectangularMagnificationWidth">179.0dip</dimen>
<dimen name="rectangularMagnificationHeight">74.0dip</dimen>
<dimen name="selection_handle_offset_y">42.0dip</dimen>
<dimen name="selection_handle_right_offset_x">15.0dip</dimen>
<dimen name="selection_handle_left_offset_x">7.0dip</dimen>
Public.xml add the following lines as shown in pic
under public type demin
Code:
<public type="dimen" name="magnifier_selection_handle_offset_y" id="0x01050078" />
<public type="dimen" name="roundMagnificationRadius" id="0x01050079" />
<public type="dimen" name="rectangularMagnificationWidth" id="0x0105007a" />
<public type="dimen" name="rectangularMagnificationHeight" id="0x0105007b" />
<public type="dimen" name="selection_handle_offset_y" id="0x0105007c" />
<public type="dimen" name="selection_handle_right_offset_x" id="0x0105007d" />
<public type="dimen" name="selection_handle_left_offset_x" id="0x0105007e" />
note ur hex codes should be order..
under public type drawables
<public type="drawable" name="textfield_search_right_holo" id="0x010807fb" />
<public type="drawable" name="semc_magnifier_arrow_above" id="0x010807fc" />
<public type="drawable" name="semc_magnifier_arrow_left" id="0x010807fd" />
<public type="drawable" name="semc_magnifier_arrow_right" id="0x010807fe" />
<public type="drawable" name="semc_magnifier_rectangle" id="0x010807ff" />
<public type="drawable" name="semc_magnifier_round" id="0x01080800" />
again the hex codes should in order
3-STEP
put the pngs which i have provided in magni_resoures.rar to drawables-hpdi folder
4-STEP
now recompile the framework-res.apk..
5-STEP
now decompile ur framewok.jar
add the following files provided in magni_resoreces.rar
copy all the files in webkit folder and paste it in classout/android/webkit folder
and copy all the files widget folder and paste it in classout/android/widget folder
wait dont recomplie yet (see next step )
6-STEP
now we have to compare some id's from ur public.xml and MagnifierView.smali to assign the same id's for drawables and dimes present in public.xml
Open ur both Public.xml and MagnifierView.smali at the same time and do the following
in magnifierView.smali
1- Find this line and assign <public type="drawable" name="semc_magnifier_round" id="0x010807f9" /> id here
Code:
.line 413
move-object/from16 v0, p0
iget-object v3, v0, Landroid/widget/MagnifierView;->mFrames:[Landroid/graphics/drawable/Drawable;
const/4 v4, 0x0
const v5, 0x10[COLOR="Red"]807f9[/COLOR]
2- Find this line and assign <public type="drawable" name="semc_magnifier_rectangle" id="0x010807f8" /> id here
Code:
.line 414
move-object/from16 v0, p0
iget-object v3, v0, Landroid/widget/MagnifierView;->mFrames:[Landroid/graphics/drawable/Drawable;
const/4 v4, 0x1
const v5, 0x10[COLOR="red"]807f8[/COLOR]
3-Find this line and assign <public type="dimen" name="roundMagnificationRadius" id="0x01050073" /> id here
Code:
.line 422
const v3, 0x10[COLOR="red"]50073[/COLOR]
invoke-virtual {v12, v3}, Landroid/content/res/Resources;->getDimensionPixelSize(I)I
move-result v13
4-Find this line and assign <public type="dimen" name="rectangularMagnificationWidth" id="0x01050074" /> id here
Code:
.line 426
move-object/from16 v0, p0
iget-object v3, v0, Landroid/widget/MagnifierView;->mMagnificationWidth:[I
const/4 v4, 0x1
const v5, 0x10[COLOR="red"]50074[/COLOR]
5-Find this line and assign <public type="dimen" name="rectangularMagnificationHeight" id="0x01050075" /> id here
Code:
.line 428
move-object/from16 v0, p0
iget-object v3, v0, Landroid/widget/MagnifierView;->mMagnificationHeight:[I
const/4 v4, 0x1
const v5, 0x10[COLOR="red"]50075[/COLOR]
6-Find this line and assign <public type="dimen" name="selection_handle_offset_y" id="0x01050076" /> id here
Code:
.line 452
move-object/from16 v0, p0
iget-object v3, v0, Landroid/widget/MagnifierView;->mArrowDrawables:[Landroid/graphics/drawable/Drawable;
const/4 v4, 0x0
const v5, 0x10[COLOR="red"]50076[/COLOR]
7-Find this line and assign <public type="dimen" name="selection_handle_right_offset_x" id="0x01050077" /> id here
Code:
.line 454
move-object/from16 v0, p0
iget-object v3, v0, Landroid/widget/MagnifierView;->mArrowDrawables:[Landroid/graphics/drawable/Drawable;
const/4 v4, 0x1
const v5, 0x10[COLOR="red"]50077[/COLOR]
8-Find this line and assign <public type="dimen" name="selection_handle_left_offset_x" id="0x01050078" /> id here
Code:
.line 456
move-object/from16 v0, p0
iget-object v3, v0, Landroid/widget/MagnifierView;->mArrowDrawables:[Landroid/graphics/drawable/Drawable;
const/4 v4, 0x2
const v5, 0x10[COLOR="red"]50078[/COLOR]
once u done it..
recompile ur framework.jar
STEP-7
now use the flashable zip i have provided to flash this mod..
PS- my way for presentation of this TUT is bad...hope u guys understand.
CREDITS:
AOEN WORLD -for resources.and initial tut
More TUTS here
Adding options in settings.apk
well friends today iam going to show u have to add options like CPU control, panel settings , navigation bar in ur settings.apk
SO lets start
1-STEP
install the frameworks from the rom from where u are taking the settings.apk
2-STEP
hope u guys know how to decompile iam not going to explain it
so decompile the settings.apk (make sure u set the compression level 128mb)
3-STEP
once decompiled
goto res\values
1)strings.xml
add the lines at the end
creating a header name
add this line at the end
Code:
[B]<string name="header_category_advanced">[COLOR="Red"]Sandy's mod[/COLOR]</string>[/B]
note:u can change the red colored highlighted name to any thing..
for CPU control
Code:
[B]<string name="overclocktool_title">CPU control</string>[/B]
for quickpanel
Code:
[B]<string name="quickpanel_location">Quick panel</string>[/B]
for navigation bar
Code:
[B]<string name="nav_title">Navigation button</string>[/B]
for sim card option
Code:
<string name="sim_title">SIM card</string>
For sms counter
Code:
<string name="sms_title">SMS counter</string>
for lockscreen changer
Code:
<string name="lockscreen_title">Lock screen</string>
for audio effect
Code:
<string name="audio_title">Audio</string>
for LED control app
Code:
<string name="led_title">LED control</string>
so one u add all these lines in strings.xml it should look like this
2)Public.xml
now add these lines at the end of <public type="string" line
for CPU control
Code:
[B]<public type="string" name="overclocktool_title" id="0x7f0b0658" />[/B]
for quickpanel
Code:
[B]<public type="string" name="quickpanel_location" id="0x7f0b065b" />[/B]
for navigation bar
Code:
[B]<public type="string" name="nav_title" id="0x7f0b065c" />[/B]
for sim card option
Code:
<public type="string" name="sim_title" id="0x7f0b062d" />
For sms counter
Code:
<public type="string" name="sms_title" id="0x7f0b062e" />
for lockscreen changer
Code:
<public type="string" name="lockscreen_title" id="0x7f0b0633" />
for audio effect
Code:
<public type="string" name="audio_title" id="0x7f0b062b" />
for LED control app
Code:
<public type="string" name="led_title" id="0x7f0b062f" />
IMP:- make sure the hex codes are in order
so one u add all these lines in public.xml it should look like this
4-STEP
goto res/xml/settings_headers.xml
and add the following lines.
For add the header that u created.
Code:
[B]<header android:title="@string/header_category_advanced" />[/B]
now placing the option that u have created
for CPU control
Code:
[B]<header android:icon="@drawable/ic_overclocktool" android:title="@string/overclocktool_title">
<intent android:targetPackage="it.sineo.android.noFrillsCPUClassic" android:action="android.intent.action.MAIN" android:targetClass="it.sineo.android.noFrillsCPUClassic.activity.MainActivity" />
</header>[/B]
for quickpanel
Code:
[B]<header android:icon="@drawable/ic_settings_quickpanel" android:id="@id/quickpanel_location_settings" android:title="@string/quickpanel_location">
<intent android:targetPackage="com.lidroid.quickpanel" android:targetClass="com.lidroid.quickpanel.MainActivity" />
</header>[/B]
for navigation bar
Code:
[B]<header android:icon="@drawable/ic_nav" android:title="@string/nav_title">
<intent android:targetPackage="cn.kyle.gn.NavBar" android:action="android.intent.action.MAIN" android:targetClass="cn.kyle.gn.NavBar.GnNavBarActivity" />
</header>[/B]
for sim card option
Code:
<header android:icon="@drawable/ic_sim" android:title="@string/sim_title">
<intent android:targetPackage="com.gsmdev.simcard" android:action="android.intent.action.MAIN" android:targetClass="com.gsmdev.simcard.MainActivity" />
</header>
For sms counter
Code:
<header android:icon="@drawable/ic_sms" android:title="@string/sms_title">
<intent android:targetPackage="org.kknd.android.smscounter" android:action="android.intent.action.MAIN" android:targetClass="org.kknd.android.smscounter.SmsCounterActivity" />
</header>
for lockscreen changer
Code:
<header android:icon="@drawable/ic_settings_lockstyle" android:title="@string/lockscreen_title">
<intent android:targetPackage="com.gagan.style" android:targetClass="com.gagan.style.LockscreenStyleActivity" />
</header>
for audio effect
Code:
<header android:icon="@drawable/ic_audio" android:title="@string/audio_title">
<intent android:targetPackage="org.nocrew.tomas.headsetnotifierfree" android:action="android.intent.action.MAIN" android:targetClass="org.nocrew.tomas.headsetnotifierfree.HeadsetNotifierActivity" />
</header>
for LED control app
Code:
<header android:icon="@drawable/ic_led" android:title="@string/led_title">
<intent android:targetPackage="com.koo.lightmanager" android:action="android.intent.action.MAIN" android:targetClass="com.koo.lightmanager.MainActivity" />
</header>
so one u add all these lines in settings_headers.xml it should look like this
5-STEP
now we have to add some png's for these options in settings..
i have provided the pngs in 'settings_resources.rar' attached below
add the png's in this place like this
MDPI- res\drawables-mdpi
HDPI- res\drawables-hdpi
6-STEP
recompile it new its done
7-STEP
new u need th push the settings with options apk's (like cpu OC ,panel settings ' nav bar)
i have provided the apk's in settings_resources.rar
8-STEP
now push these settings.apk and other apks using a flashable zip formate i have attached below
HOW TO ADD PER APP DPI IN DISPLAY SETTINGS​
1-STEP
decompile settings.apk
open res/values/strings.xml
and add these lines at the end
Code:
<string name="dpi_enable">per app dpi</string>
<string name="dpi_enable_summary">Tablet UI</string>
<string name="dpi_settings">dpi settings</string>
<string name="dpi_settings_summary">change dpi of each app</string>
2-STEP
open res/xml/display_settings.xml
and add the red marked lines..
Code:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen android:title="@string/display_settings"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
<CheckBoxPreference android:title="@string/swiqi_strings_swiqi_txt" android:key="swiqi_strings_swiqi_txt" android:summary="@string/swiqi_strings_swiqi_desc_txt" />
<com.android.settings.BrightnessPreference android:title="@string/brightness" android:key="brightness" android:dialogTitle="@string/brightness" />
<PreferenceScreen android:title="@string/wallpaper_settings_title" android:key="wallpaper" android:fragment="com.android.settings.WallpaperTypeSettings" />
<CheckBoxPreference android:title="@string/accelerometer_title" android:key="accelerometer" />
<ListPreference android:persistent="false" android:entries="@array/screen_timeout_entries" android:title="@string/screen_timeout" android:key="screen_timeout" android:summary="@string/screen_timeout_summary" android:entryValues="@array/screen_timeout_values" />
<ListPreference android:entries="@array/font_size_entries" android:title="@string/title_font_size" android:key="font_size" android:summary="@string/summary_font_size" android:dialogTitle="@string/dialog_title_font_size" android:entryValues="@array/font_size_values" />
<CheckBoxPreference android:persistent="false" android:title="@string/notification_pulse_title" android:key="notification_pulse" />
<PreferenceCategory android:title="@string/display_category_personalisation_title" android:key="personalisation_category">
<PreferenceScreen android:title="@string/theme_label" android:key="theme" android:summary="@string/theme_summary" />
<PreferenceScreen android:title="@string/lockscreen_label" android:key="lockscreen" android:summary="@string/lockscreen_summary" />
[COLOR="red"]<PreferenceScreen android:title="@string/dpi_enable" android:key="dpi" android:summary="@string/dpi_enable_summary">
<intent android:targetPackage="de.robv.android.xposed.installer" android:action="android.intent.action.MAIN" android:targetClass="de.robv.android.xposed.installer.XposedInstallerActivity" />
</PreferenceScreen>
<PreferenceScreen android:title="@string/dpi_settings" android:key="dpi" android:summary="@string/dpi_settings_summary">
<intent android:targetPackage="de.robv.android.xposed.mods.appsettings" android:action="android.intent.action.MAIN" android:targetClass="de.robv.android.xposed.mods.appsettings.XposedModActivity" />
</PreferenceScreen>[/COLOR]
</PreferenceCategory>
</PreferenceScreen>
3-STEP
push the xposed apps provided in settings_resoures_new.rar to system/app
so thats it..
CREDITS
Serajr
Till-Kurpse
gagan
so thats it..hope its understandable
if u like my contributions hit the thanks button or buy me a beer (make me drunk )
[ Guide for using .13 with .587 Mods ]
Hi,
In this guide I'll show you how to use mods from the old .587 with the new. 13 ics software found here:
4.1.B.1.13 Port by Jader13254
(xperia-arc-development)
.13 has some new java code inside framework & libs, so we need to port .587 mods...
This is nooby-easy and doesn't requiere ANY coding experience...
BUT you need to know how to use apktool & java..
You need:
Apktool
Notepad++
7zip
PC
1. Download any Mod you want...
2. Get "framework.jar" out of the mod using 7zip & copy to C:\
3. open a cmd window & type "apktool d C:\framework.jar C:\framework
4. open C:\framework
5. download this and paste inside /framework (put the files from /smali inside the /smali from the C:\framework)
6. now open a cmd window
7. type "apktool b C:\framework"
8. put C:\framework\dist\framework.jar (after built complete) back inside the .zip of your mod..
9. flash it via cwm
10. done, enjoy
btw, feel free to press thanks
correction crt off animation have to change from true to false
AW: [TUTORIAL] How to add various framework mods
I dont read all but is there a description how to go with headphones?
sorry for my little english
sinoboss said:
I dont read all but is there a description how to go with headphones?
sorry for my little english
Click to expand...
Click to collapse
what?
added xperia s lockscreen and small apps TUT
thanks for tuts. If you know the important thing is long press back button to kill apps. I belive lots of people need that..
SKIP TRACK VIA VOL LONG PRESS not Work Error ???
Send Me ur Apktool ...
problem Solved Wrong Code
Code:
.line 2841
invoke-direct {p0}, Lcom/android/internal/policy/impl/PhoneWindowManager;->cancelPendingScreenshotChordAction()V
invoke-virtual {p0}, Lcom/android/internal/policy/impl/PhoneWindowManager;->handleVolumeLongPressAbort()V
invoke-virtual {p0}, Lcom/android/internal/policy/impl/PhoneWindowManager;->isMusicActive()Z
move-result v12
if-eqz v12, :cond_c2
move-object/from16 v0, p0
iget-boolean v0, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mIsLongPress:Z
move v12, v0
if-nez v12, :cond_c2
and-int/lit8 v12, v10, 0x1
if-nez v12, :cond_c2
const/4 v12, 0x3
move-object/from16 v0, p0
invoke-virtual {v0, v12, v8}, Lcom/android/internal/policy/impl/PhoneWindowManager;->handleVolumeKey(II)V
goto :goto_c2
.line 2843
to
Code:
.line 2841
invoke-direct {p0}, Lcom/android/internal/policy/impl/PhoneWindowManager;->cancelPendingScreenshotChordAction()V
invoke-virtual {p0}, Lcom/android/internal/policy/impl/PhoneWindowManager;->handleVolumeLongPressAbort()V
invoke-virtual {p0}, Lcom/android/internal/policy/impl/PhoneWindowManager;->isMusicActive()Z
move-result v12
if-eqz v12, :cond_c0
move-object/from16 v0, p0
iget-boolean v0, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mIsLongPress:Z
move v12, v0
if-nez v12, :cond_c0
and-int/lit8 v12, v10, 0x1
if-nez v12, :cond_c0
const/4 v12, 0x3
move-object/from16 v0, p0
invoke-virtual {v0, v12, v8}, Lcom/android/internal/policy/impl/PhoneWindowManager;->handleVolumeKey(II)V
goto :goto_c0
.line 2843
thanks for letting me know the code...... appreciate it..
sry out of 8 thanks
@sandy7, Great work bro! :good:
Hi, Sandy, I have some question here. What if the id at public.xml that is used for the following line to add small app are like these:
<public type="string" name="permlab_smallapp" id="0x01040552" />
<public type="string" name="permdesc_smallapp" id="0x01040553" />
<public type="string" name="permlab_external_lockscreen" id="0x01040554" />
<public type="string" name="permdesc_external_lockscreen" id="0x01040555" />
<public type="string" name="permlab_externalTaskSwitcher" id="0x01040556" />
<public type="string" name="permdesc_externalTaskSwitcher" id="0x01040557" />
should I edit those smali at the small app apk and framework.jar? which line should be changed? I'm from Optimax, the framework of that ROM last string id ends at 0x01040551, so I cant use the lines provided by you or else fail recompile as the co-exist of the id.
mind to teach me how to do it?
xange said:
Hi, Sandy, I have some question here. What if the id at public.xml that is used for the following line to add small app are like these:
<public type="string" name="permlab_smallapp" id="0x01040552" />
<public type="string" name="permdesc_smallapp" id="0x01040553" />
<public type="string" name="permlab_external_lockscreen" id="0x01040554" />
<public type="string" name="permdesc_external_lockscreen" id="0x01040555" />
<public type="string" name="permlab_externalTaskSwitcher" id="0x01040556" />
<public type="string" name="permdesc_externalTaskSwitcher" id="0x01040557" />
should I edit those smali at the small app apk and framework.jar? which line should be changed? I'm from Optimax, the framework of that ROM last string id ends at 0x01040551, so I cant use the lines provided by you or else fail recompile as the co-exist of the id.
mind to teach me how to do it?
Click to expand...
Click to collapse
well no need edit any smali's just add the smali's i have provided in resources.zip in framework.jar..
well about public.xml
u are telling that the last id ends at 0x01040551 so the next id's will be like this
0x01040552
0x01040553
0x01040554
0x01040555
0x01040556
0x01040557
0x01040558
0x01040559
0x0104055a
0x0104055b
and so on
and if ur adding only small apps u dont need these lines..
<public type="string" name="permlab_external_lockscreen" id="0x01040554" />
<public type="string" name="permdesc_external_lockscreen" id="0x01040555" />
these are for lockscreen
Sandy, you are no less than a God to me, I have always wanted to learn and know,
the volume key hack/mod. Could you tell me it's possible on any version of Android, (from Donut to JB) also would it work on OEM's. Like am on stock Galaxy Note 2 would it work?
OR if i go back to X10i stock would it work? Or are there other formalities?
Re: [TUTORIAL] How to add various framework mods
Sandy :thumbup::thumbup: bro you made my day!
Hope I can learn some things from this tut!
Hope you find time to add some more mod guides!
Sent from my MT11i using xda premium
Re: [TUTORIAL] How to add various framework mods
pathaniya said:
Sandy, you are no less than a God to me, I have always wanted to learn and know,
the volume key hack/mod. Could you tell me it's possible on any version of Android, (from Donut to JB) also would it work on OEM's. Like am on stock Galaxy Note 2 would it work?
OR if i go back to X10i stock would it work? Or are there other formalities?
Click to expand...
Click to collapse
Should be the same..any how upload ur android.policy.jar ill go through it...and see if it has any changes..
Sent from my SK17i using XDA Premium HD app
Re: [TUTORIAL] How to add various framework mods
Ghostfreak NB said:
Sandy :thumbup::thumbup: bro you made my day!
Hope I can learn some things from this tut!
Hope you find time to add some more mod guides!
Sent from my MT11i using xda premium
Click to expand...
Click to collapse
Hope u like it..
Yes back to kill all apps tut is in process..will add soon.
Sent from my SK17i using XDA Premium HD app
Re: [TUTORIAL] How to add various framework mods
sandy7 said:
Hope u like it..
Yes back to kill all apps tut is in process..will add soon.
Sent from my SK17i using XDA Premium HD app
Click to expand...
Click to collapse
No doubting that + you kept your word bro!
You'd told I'd be making a guide when we'd talked over pm!
Will require your help! Hope you'd
Help me and not get offended! (final exams are near so not much chance before that,but once its over! I'd be the 1st one to trouble you, just kiddin ')
Sent from my MT11i using xda premium
Sandy would it be too much to ask if you can incorporate download links in your original posts. Since google so so much to offer, too many links to go through.

[GUIDE][GB] Status bar and notification panel color changer | owner pic mod

Long story short. I decided to port some of my mods to a stock status bar .I tried to make the process relatively easy. So it shouldn't be too much of a problem trying.
Status bar and notification panel color changer
Step 1
Decompile your systemui.apk. Extract the attached zip file. Copy the contents into the smali folder.
Step 2
Open res/layout/status_bar.xml.
Find the first line
Code:
<com.android.systemui.statusbar.StatusBarView android:orientation="vertical" android:background="#ff000000" android:focusable="true" android:descendantFocusability="afterDescendants"
Change it to
Code:
<com.android.systemui.statusbar.StatusBarView android:orientation="vertical" android:background="#00000000" android:focusable="true" android:descendantFocusability="afterDescendants"
We just changed the background color to transparent in the above step
After the first line paste this
Code:
<com.b16h22.statusbar.StatusBar android:id="@id/status_bar" android:layout_width="fill_parent" android:layout_height="fill_parent" />
Now save this file
Step 3
Open res/layout/status_bar_tracking.xml
Find this code just below first line
Code:
<View android:background="#ff8e979f" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1.0" />
Change it to this
Code:
<com.b16h22.statusbar.Pulldown android:id="@id/view" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1.0" />
Now save this file
Step 4
Open res/values/ids.xml and add these at the end
Code:
<item type="id" name="status_bar">false</item>
<item type="id" name="view">false</item>
Save the file and compile systemui.apk.
Step 5
Now decompile the systemui again
Open public.xml and find these
Code:
<public type="id" name="status_bar" id="[COLOR="DeepSkyBlue"]0x7f090028[/COLOR]" />
<public type="id" name="view" id="[COLOR="Red"]0x7f090029[/COLOR]" />
Open smali/com/b16h22/statusbar/StatusBar.smali
Find
Code:
const v2, [COLOR="DeepSkyBlue"]0x7f090026[/COLOR]
Change it to the id in blue in public.xml
Code:
const v2, [COLOR="DeepSkyBlue"]0x7f090028[/COLOR]
Now open smali/com/b16h22/statusbar/Pulldown.smali
Find
Code:
const v2, [COLOR="Red"]0x7f090027[/COLOR]
Change it to the id in red in public.xml
Code:
const v2, [COLOR="Red"]0x7f090029[/COLOR]
Now re-compile systemui again and push it to phone. Use StatusBarMods.apk from the attachment to change the color.
Click to expand...
Click to collapse
Status bar owner picture
This mod is a little complicated.But if you follow the steps well enough,it's going to be fairly easy.Think twice before asking a doubt.
We are adding owner picture functionality to status bar like android 4.2 and integrate the photo picker to the settings.apk. So let's start with integrating photo picker to settings.I wrote a few classes for this.Extract the "Owner_mod_files_settings.zip" and get the smali files and resource files from it.
Step 1
Get these files from the extracted zip
Code:
res/layout/profile_info.xml
res/drawable/done.xml
res/drawable/pick_profile_picture.xml
res/drawable-ldpi/done_normal.png
res/drawable-ldpi/done_pressed.png
res/drawable-ldpi/ic_qs_default_user.png
res/drawable-ldpi/ic_settings_owner.png
res/drawable-ldpi/pick_profile_normal.png
res/drawable-ldpi/pick_profile_pressed.png
Decompile settings.apk and put the above files in respective folders
Step 2
Get these smali files from the extracted zip and place it in the smali/ folder of decompiled apk
Code:
smali/com/b16h22/Profile.smali
smali/com/b16h22/Profile$1.smali
smali/com/b16h22/Profile$2.smali
Step 3
Now open the ids.xml and add these ids in it
Code:
<item type="id" name="image">false</item>
<item type="id" name="owner">false</item>
<item type="id" name="linear_layout">false</item>
<item type="id" name="profile_pic">false</item>
<item type="id" name="layout1">false</item>
<item type="id" name="change_picture_text">false</item>
<item type="id" name="photo_picker">false</item>
<item type="id" name="linear_layout1">false</item>
<item type="id" name="layout2">false</item>
<item type="id" name="name_field">false</item>
<item type="id" name="name_edit">false</item>
Open strings.xml and add these strings
Code:
<string name="change_pic">Change profile picture</string>
<string name="profile_pic">SET PROFILE PICTURE</string>
<string name="profile_name">CHANGE PROFILE NAME</string>
Step 4
Now recompile the apk and decompile it again. Now open the public.xml and find these ids.These may not be the same in your apk. It may differ.I have color coded them to make it easier to distinguish in the upcoming steps
Code:
<public type="layout" name="profile_info" id="[COLOR="Blue"]0x7f03005a[/COLOR]" />
<public type="drawable" name="ic_qs_default_user" id="[COLOR="Indigo"]0x7f0200b2[/COLOR]" />
<public type="id" name="image" id="[COLOR="Magenta"]0x7f0b011b[/COLOR]" />
<public type="id" name="owner" id="[COLOR="Orange"]0x7f0b011c[/COLOR]" />
<public type="id" name="photo_picker" id="[COLOR="DarkOrchid"]0x7f0b0121[/COLOR]" />
<public type="id" name="name_field" id="[COLOR="YellowGreen"]0x7f0b0124[/COLOR]" />
<public type="id" name="name_edit" id="[COLOR="SeaGreen"]0x7f0b0125[/COLOR]" />
Now open smali/com/b16h22/Profile.smali and find the method
Code:
.method protected onCreate(Landroid/os/Bundle;)V
And replace the ids in it with the ones from public.xml
Code:
.method protected onCreate(Landroid/os/Bundle;)V
.locals 4
.parameter "savedInstanceState"
.prologue
.line 27
invoke-super {p0, p1}, Landroid/app/Activity;->onCreate(Landroid/os/Bundle;)V
.line 28
const v2, [COLOR="blue"]0x7f03005a[/COLOR] # profile_info
invoke-virtual {p0, v2}, Lcom/b16h22/Profile;->setContentView(I)V
.line 30
const v2, [COLOR="DarkOrchid"]0x7f0b0121[/COLOR] #photo_picker
invoke-virtual {p0, v2}, Lcom/b16h22/Profile;->findViewById(I)Landroid/view/View;
move-result-object v0
check-cast v0, Landroid/widget/ImageView;
.line 31
.local v0, photo:Landroid/widget/ImageView;
const v2, [COLOR="Orange"]0x7f0b011c[/COLOR] # owner
invoke-virtual {p0, v2}, Lcom/b16h22/Profile;->findViewById(I)Landroid/view/View;
move-result-object v2
check-cast v2, Landroid/widget/TextView;
iput-object v2, p0, Lcom/b16h22/Profile;->owner:Landroid/widget/TextView;
.line 32
const v2, [COLOR="YellowGreen"]0x7f0b0124[/COLOR] # name_field
invoke-virtual {p0, v2}, Lcom/b16h22/Profile;->findViewById(I)Landroid/view/View;
move-result-object v2
check-cast v2, Landroid/widget/EditText;
iput-object v2, p0, Lcom/b16h22/Profile;->name:Landroid/widget/EditText;
.line 33
const v2, [COLOR="SeaGreen"]0x7f0b0125[/COLOR] # name_edit
invoke-virtual {p0, v2}, Lcom/b16h22/Profile;->findViewById(I)Landroid/view/View;
move-result-object v2
check-cast v2, Landroid/widget/ImageView;
iput-object v2, p0, Lcom/b16h22/Profile;->done:Landroid/widget/ImageView;
.line 34
const v2, [COLOR="Magenta"]0x7f0b011b[/COLOR] # image
invoke-virtual {p0, v2}, Lcom/b16h22/Profile;->findViewById(I)Landroid/view/View;
move-result-object v2
check-cast v2, Landroid/widget/ImageView;
iput-object v2, p0, Lcom/b16h22/Profile;->imageView:Landroid/widget/ImageView;
.line 37
const-string v2, "EvoPrefsFile"
const/4 v3, 0x0
invoke-virtual {p0, v2, v3}, Lcom/b16h22/Profile;->getSharedPreferences(Ljava/lang/String;I)Landroid/content/SharedPreferences;
move-result-object v1
.line 38
.local v1, sharedPreferences:Landroid/content/SharedPreferences;
const-string v2, "profileName"
const-string v3, "null"
invoke-interface {v1, v2, v3}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v2
iput-object v2, p0, Lcom/b16h22/Profile;->profName:Ljava/lang/String;
.line 39
iget-object v2, p0, Lcom/b16h22/Profile;->profName:Ljava/lang/String;
const-string v3, "null"
if-ne v2, v3, :cond_0
.line 40
iget-object v2, p0, Lcom/b16h22/Profile;->owner:Landroid/widget/TextView;
const-string v3, "Owner"
invoke-virtual {v2, v3}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V
.line 46
:goto_0
const-string v2, "profilePic"
const-string v3, "null"
invoke-interface {v1, v2, v3}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v2
iput-object v2, p0, Lcom/b16h22/Profile;->imageUri:Ljava/lang/String;
.line 47
iget-object v2, p0, Lcom/b16h22/Profile;->imageUri:Ljava/lang/String;
const-string v3, "null"
if-ne v2, v3, :cond_1
.line 48
iget-object v2, p0, Lcom/b16h22/Profile;->imageView:Landroid/widget/ImageView;
const v3, [COLOR="Indigo"]0x7f0200b2[/COLOR] #ic_qs_default_user
invoke-virtual {v2, v3}, Landroid/widget/ImageView;->setImageResource(I)V
.line 53
:goto_1
new-instance v2, Lcom/b16h22/Profile$1;
invoke-direct {v2, p0}, Lcom/b16h22/Profile$1;-><init>(Lcom/b16h22/Profile;)V
invoke-virtual {v0, v2}, Landroid/widget/ImageView;->setOnClickListener(Landroid/view/View$OnClickListener;)V
.line 64
iget-object v2, p0, Lcom/b16h22/Profile;->done:Landroid/widget/ImageView;
new-instance v3, Lcom/b16h22/Profile$2;
invoke-direct {v3, p0}, Lcom/b16h22/Profile$2;-><init>(Lcom/b16h22/Profile;)V
invoke-virtual {v2, v3}, Landroid/widget/ImageView;->setOnClickListener(Landroid/view/View$OnClickListener;)V
.line 80
return-void
.line 42
:cond_0
iget-object v2, p0, Lcom/b16h22/Profile;->owner:Landroid/widget/TextView;
iget-object v3, p0, Lcom/b16h22/Profile;->profName:Ljava/lang/String;
invoke-virtual {v2, v3}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V
.line 43
iget-object v2, p0, Lcom/b16h22/Profile;->name:Landroid/widget/EditText;
iget-object v3, p0, Lcom/b16h22/Profile;->profName:Ljava/lang/String;
invoke-virtual {v2, v3}, Landroid/widget/EditText;->setText(Ljava/lang/CharSequence;)V
goto :goto_0
.line 50
:cond_1
iget-object v2, p0, Lcom/b16h22/Profile;->imageView:Landroid/widget/ImageView;
iget-object v3, p0, Lcom/b16h22/Profile;->imageUri:Ljava/lang/String;
invoke-static {v3}, Landroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri;
move-result-object v3
invoke-virtual {v2, v3}, Landroid/widget/ImageView;->setImageURI(Landroid/net/Uri;)V
goto :goto_1
.end method
Step 5
Now open the res/xml/settings.xml
and add this iconpreferencescreen.You can add it anywhere you want.I'm assuming you have basic knowledge about preference xmls.
Code:
<com.android.settings.IconPreferenceScreen android:title="Owner Profile" settings:icon="@drawable/ic_settings_owner">
<intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.b16h22.Profile" />
</com.android.settings.IconPreferenceScreen>
EDIT:I forgot to write the step to assign new activity to the android manifest. Thanks to 3r41nl33n for remembering me
Open AndroidManifest.xml and add this
Code:
<activity android:label="@string/change_pic" android:name="com.b16h22.Profile">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
</activity>
Now save files and compile the settings.apk and push it to system.You have to resign the apk and other system apks or disable signature verification. Now you will have somethng like this
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Now we can move on to modifying the systemui.apk.Decompile systemui.apk
Step 6
Open status_bar_expanded.xml and paste this where you want to put the owner image.
Code:
<LinearLayout android:layout_width="106.66699dip" android:layout_height="106.66699dip">
<com.b16h22.statusbar.ProfilePicture android:id="@id/profile" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginLeft="1.0px" android:layout_marginTop="1.0px" android:layout_marginRight="1.0px" android:layout_marginBottom="1.0px" android:scaleType="centerCrop" />
<com.b16h22.statusbar.ProfileName android:textStyle="normal" android:textColor="#ffffffff" android:gravity="center" android:layout_gravity="center_vertical" android:id="@id/profile_name" android:background="#cc000000" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="1.0px" android:layout_marginRight="1.0px" android:layout_marginBottom="1.0px" android:layout_alignParentBottom="true" />
</LinearLayout >
Now extract the "Owner_mod_files_systemui.zip" and put the smali folder in the systemui smali folder and the pngs in the drawable-ldpi folder.
Step 7
Open ids.xml and add these
Code:
<item type="id" name="profile">false</item>
<item type="id" name="profile_name">false</item>
Recompile the apk and decompile it again
Step 8
Open public.xml and note these ids
Code:
<public type="id" name="profile" id="0x7f09003a" />
<public type="id" name="profile_name" id="0x7f09003b" />
<public type="drawable" name="ic_qs_default_user" id="0x7f02012e" />
Step 9
Open smali/com/b16h22/statusbar/ProfilePicture.smali and find this
Code:
.line 21
const v4, 0x7f09003a
replace the id with the id of "profile"
find
Code:
const v5, 0x7f02012e
replace it with the id of drawable "ic_qs_default_user"
Open smali/com/b16h22/statusbar/ProfilePicture$2.smali
Find
Code:
const v2, 0x7f02012e
replace it with id of drawable "ic_qs_default_user"
Open smali/com/b16h22/statusbar/ProfileName.smali
find
Code:
.line 19
const v2, 0x7f09003b
replace it with the id of "profile_name"
Now recompile the apk and push to system. You should be able to change picture from the settings. Think twice before askin anything. Please point out the faults in the guide if there is any.
DOWNLOADS
owner_mod_files_systemui.zip
owner_mod_files_settings.zip
Click to expand...
Click to collapse
Anyone can use this mods but give credits where its due and keep the spirit of open source. Kanging is bad mmkay
Click to expand...
Click to collapse
Awesome guide,like your rom bro:thumbup:
GREEEEETZ WITH BEATZ!!!
awesome guide
i have problem to decompile ure systemui
haha
bt now i know where the secret
haha
i like ure rom brother
Awesome
Can you make one for the 3 layouts of statusbar too
And AOKP Toggles?
Excited
i wanna try bro ! good job :laugh:
Hey b16h22, dont make tuts for other stuff, ur rom will not be uniqe!
Sent from my GT-S5360 using xda app-developers app
m4RinKo2 said:
Hey b16h22, dont make tuts for other stuff, ur rom will not be uniqe!
Sent from my GT-S5360 using xda app-developers app
Click to expand...
Click to collapse
I guess so bro
Sent From With Connection
Visit My blog : Dvikzz.com
awesome
thanx bro. gonna hav it in our rom maybe..
Great guide. Gonna try to make my own sir.
thanks to your guide..
Sent from my GT-S5360 using xda premium
it didnt worked fr me..
b16h22 said:
Long story short. I decided to port some of my mods to a stock status bar .I tried to make the process relatively easy. So it shouldn't be too much of a problem trying.
​
Click to expand...
Click to collapse
i tried it. but it didnt worked fr me. i am attaching the systemui. can u please help me to point out what i did wrong? thanx in advance..
I m getting this error when recompiling back systemui
l0lh4rd said:
I m getting this error when recompiling back systemui
Click to expand...
Click to collapse
Check your status_bar.xml for error.One of the lines is not well formed.
Sent from my GT-S5360
Tks u sir ! i got it (^.,,.^)
Do you have free time ? Check your PM
markmellarpes said:
thanks to your guide..
View attachment 2076180
View attachment 2076181
Sent from my GT-S5360 using xda premium
Click to expand...
Click to collapse
Can you share your systemui.apk...nd icon pack you used....plsss
Hit
Button If This Post Helped You
awesome dude, I tried :fingers-crossed:
Good work Op, I am using your rom and its really great looking.. and the statusbar is fully customisable..
Edit: the mod is working great too.
Plz tell me the procedure to use the Moded StatusBarMods.apk on my stock rom.I'm new to this.. @admin
b16h22 said:
Long story short. I decided to port some of my mods to a stock status bar .I tried to make the process relatively easy. So it shouldn't be too much of a problem trying.
​
Click to expand...
Click to collapse
You are doing a very good job mate. Educating users how to modify and add tweaks for ROMS will prevent them from kanging your work and maybe they will come up with a different tweak with your guide. Keep it up. I always admire your work and thank you for believing in the spirit of open source

[GUIDE] Add to Device Info the value read from Build.prop (like in CyanogenMOD)

Hello
Today I would like o present you how to add to Device Info the value read from Build.prop (like in CyanogenMOD)​
NEED:
apktool : https://code.google.com/p/android-apktool/downloads/list
Text Editor (I prefer Notepad++) : http://notepad-plus-plus.org/download/v6.4.2.html
Android SDK: http://developer.android.com/sdk/index.html
Zip editor (I prefer 7Zip): http://www.7-zip.org/download.html
1)Get framework-res.apk and Settings.apk from your device
Code:
adb pull /system/framework/framework-res.apk
adb pull /system/app/Settings.apk
2)"Install" framework-res.apk in your apktool
Code:
apktool if framework-res.apk
3)Decompile Settings.apk
Code:
apktool d Settings.apk
4)Add new Item in You Device Info view
a)Open Settings/res/xml/device_info_settings.xml
b)Add after
Code:
<Preference android:title="@string/build_number" android:key="build_number" android:summary="@string/device_info_default" style="?android:preferenceInformationStyle" />
this
Code:
<Preference android:title="@string/your_rom_version" android:key="your_rom_version_key" android:summary="@string/your_rom_version_default" style="?android:preferenceInformationStyle" />
c)Remember value from android:title , android:key and android:summary
d)Save file
5)Add Title and Default value to your item
a)Open Settings/res/values/strings.xml
b)Add Before
Code:
</resources>
this
Code:
<string name="your_rom_version">My Rom Version</string>
<string name="your_rom_version_default">My Rom Version Value</string>
c)Save File
6)Edit Settings/smali/com/android/settings/DeviceInfoSettings.smali
a)Find in file this
Code:
.line 83
const-string v8, "firmware_version"
invoke-virtual {p0, v10}, Lcom/android/settings/DeviceInfoSettings;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;
move-result-object v8
invoke-virtual {v8, v11}, Landroid/preference/Preference;->setEnabled(Z)V
.line 84
const-string v8, "baseband_version"
const-string v9, "gsm.version.baseband"
invoke-direct {p0, v8, v9}, Lcom/android/settings/DeviceInfoSettings;->setValueSummary(Ljava/lang/String;Ljava/lang/String;)V
.line 85
const-string v8, "device_model"
sget-object v9, Landroid/os/Build;->MODEL:Ljava/lang/String;
invoke-direct {p0, v8, v9}, Lcom/android/settings/DeviceInfoSettings;->setStringSummary(Ljava/lang/String;Ljava/lang/String;)V
.line 86
const-string v8, "build_number"
sget-object v9, Landroid/os/Build;->DISPLAY:Ljava/lang/String;
invoke-direct {p0, v8, v9}, Lcom/android/settings/DeviceInfoSettings;->setStringSummary(Ljava/lang/String;Ljava/lang/String;)V
.line 87
const-string v8, "kernel_version"
invoke-virtual {p0, v8}, Lcom/android/settings/DeviceInfoSettings;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;
move-result-object v8
invoke-direct {p0}, Lcom/android/settings/DeviceInfoSettings;->getFormattedKernelVersion()Ljava/lang/String;
move-result-object v9
invoke-virtual {v8, v9}, Landroid/preference/Preference;->setSummary(Ljava/lang/CharSequence;)V
b)and Add before
Code:
.line 84
const-string v8, "baseband_version"
const-string v9, "gsm.version.baseband"
invoke-direct {p0, v8, v9}, Lcom/android/settings/DeviceInfoSettings;->setValueSummary(Ljava/lang/String;Ljava/lang/String;)V
this
Code:
const-string v1, "your_rom_version_key"
const-string v2, "ro.yourromname"
invoke-direct {p0, v1, v2}, Lcom/android/settings/DeviceInfoSettings;->setValueSummary(Ljava/lang/String;Ljava/lang/String;)V
c)Save File
7)Compile Settings
a)apktool b Settings settings_new.apk
b)Open Base Settings.apk and Copy to setting_new.apk META-INF folder and AndroidManifest.xml
8)And the last
a)Rename settings_new.apk to Setting.apk
b)put new Settings.apk to your device
c)Move Settings.apk to /system/app and replace with old Settings.apk
d)Change Permision to rw-r--r--
e)add line
Code:
ro.yourromname=MyRomVersion.v3
to your build.prop
9)Reboot Phone!
Now you have Item in Device Menu which value can be changed without decompiling Layout Settings.apk
For example: I added "Wersja ION" value to android:title in string.xml and "CheQ.example" value to ro.yourromname in build.prop.
Screen:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Enjoy!
Working with GB sir?
Sent from my GT-S5360 using Tapatalk 2
has the same thing from this thread http://forum.xda-developers.com/showthread.php?t=2238155
@3r41nl33n - Yes.
@Chain Hacker - Method to add new item in menu is same - but in SArnab©®s guide value is unchanged. In my value is read from build.prop
cheqolada said:
@3r41nl33n - Yes.
@Chain Hacker - Method to add new item in menu is same - but in SArnab©®s guide value is unchanged. In my value is read from build.prop
Click to expand...
Click to collapse
but that was easier compared to yours anywayz great guide man.
Thanks you! Nice guide.
This guide is just a Copy of this Guide
http://forum.xda-developers.com/showthread.php?t=977211
Atleast you should have given her credits
GuneetAtwal said:
This guide is just a Copy of this Guide
http://forum.xda-developers.com/showthread.php?t=977211
Atleast you should have given her credits
Click to expand...
Click to collapse
Sorry , I search Guide like My but i Can't find it. When I knew that there would add that. :S
Nice
cheqolada said:
Hello
Today I would like o present you how to add to Device Info the value read from Build.prop (like in CyanogenMOD)​
NEED:
apktool : https://code.google.com/p/android-apktool/downloads/list
Text Editor (I prefer Notepad++) : http://notepad-plus-plus.org/download/v6.4.2.html
Android SDK: http://developer.android.com/sdk/index.html
Zip editor (I prefer 7Zip): http://www.7-zip.org/download.html
1)Get framework-res.apk and Settings.apk from your device
Code:
adb pull /system/framework/framework-res.apk
adb pull /system/app/Settings.apk
2)"Install" framework-res.apk in your apktool
Code:
apktool if framework-res.apk
3)Decompile Settings.apk
Code:
apktool d Settings.apk
4)Add new Item in You Device Info view
a)Open Settings/res/xml/device_info_settings.xml
b)Add after
Code:
<Preference android:title="@string/build_number" android:key="build_number" android:summary="@string/device_info_default" style="?android:preferenceInformationStyle" />
this
Code:
<Preference android:title="@string/your_rom_version" android:key="your_rom_version_key" android:summary="@string/your_rom_version_default" style="?android:preferenceInformationStyle" />
c)Remember value from android:title , android:key and android:summary
d)Save file
5)Add Title and Default value to your item
a)Open Settings/res/values/strings.xml
b)Add Before
Code:
</resources>
this
Code:
<string name="your_rom_version">My Rom Version</string>
<string name="your_rom_version_default">My Rom Version Value</string>
c)Save File
6)Edit Settings/smali/com/android/settings/DeviceInfoSettings.smali
a)Find in file this
Code:
.line 83
const-string v8, "firmware_version"
invoke-virtual {p0, v10}, Lcom/android/settings/DeviceInfoSettings;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;
move-result-object v8
invoke-virtual {v8, v11}, Landroid/preference/Preference;->setEnabled(Z)V
.line 84
const-string v8, "baseband_version"
const-string v9, "gsm.version.baseband"
invoke-direct {p0, v8, v9}, Lcom/android/settings/DeviceInfoSettings;->setValueSummary(Ljava/lang/String;Ljava/lang/String;)V
.line 85
const-string v8, "device_model"
sget-object v9, Landroid/os/Build;->MODEL:Ljava/lang/String;
invoke-direct {p0, v8, v9}, Lcom/android/settings/DeviceInfoSettings;->setStringSummary(Ljava/lang/String;Ljava/lang/String;)V
.line 86
const-string v8, "build_number"
sget-object v9, Landroid/os/Build;->DISPLAY:Ljava/lang/String;
invoke-direct {p0, v8, v9}, Lcom/android/settings/DeviceInfoSettings;->setStringSummary(Ljava/lang/String;Ljava/lang/String;)V
.line 87
const-string v8, "kernel_version"
invoke-virtual {p0, v8}, Lcom/android/settings/DeviceInfoSettings;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;
move-result-object v8
invoke-direct {p0}, Lcom/android/settings/DeviceInfoSettings;->getFormattedKernelVersion()Ljava/lang/String;
move-result-object v9
invoke-virtual {v8, v9}, Landroid/preference/Preference;->setSummary(Ljava/lang/CharSequence;)V
b)and Add before
Code:
.line 84
const-string v8, "baseband_version"
const-string v9, "gsm.version.baseband"
invoke-direct {p0, v8, v9}, Lcom/android/settings/DeviceInfoSettings;->setValueSummary(Ljava/lang/String;Ljava/lang/String;)V
this
Code:
const-string v1, "your_rom_version_key"
const-string v2, "ro.yourromname"
invoke-direct {p0, v1, v2}, Lcom/android/settings/DeviceInfoSettings;->setValueSummary(Ljava/lang/String;Ljava/lang/String;)V
c)Save File
7)Compile Settings
a)apktool b Settings settings_new.apk
b)Open Base Settings.apk and Copy to setting_new.apk META-INF folder and AndroidManifest.xml
8)And the last
a)Rename settings_new.apk to Setting.apk
b)put new Settings.apk to your device
c)Move Settings.apk to /system/app and replace with old Settings.apk
d)Change Permision to rw-r--r--
e)add line
Code:
ro.yourromname=MyRomVersion.v3
to your build.prop
9)Reboot Phone!
Now you have Item in Device Menu which value can be changed without decompiling Layout Settings.apk
For example: I added "Wersja ION" value to android:title in string.xml and "CheQ.example" value to ro.yourromname in build.prop.
Screen:
Enjoy!
Click to expand...
Click to collapse
Hy! nice guide... btw do you knkw how to import tabs to device_info_settings.xml.... I have one in settings.xml... help would be appreciated...

[MOD][GUIDE][CM10][CM10.1][CM11] Task Manager Recent Apps, Xperia Z2 Recent Apps etc.

This guide is for Transparent Statusbar, Transparent Notification Drawer, Task Manager in Recent Apps, and Faster & Smoother Notification Panel, and even Xperia Z2 Recent Apps
Transparent Notification Drawer is for CM10 only, no need to CM10.1 (already transparent )
Xperia Z2 Recent Apps only for CM11 atm, will port it to another CM / res later
Don't know how to decompile? Don't have time to decompile? You could ask me to build your own SystemUI :good:
Things you will need
PC or Laptop
apktool, zipalign and others
WinRAR or WinZip
Notepad++
Patience!
Click to expand...
Click to collapse
So, lets begin..
INSTALLING APKTOOL AND OTHER TOOLS
STEP 1
You must install apktool to your PC from HERE and other tools HERE
Extract it to a same directory same as the screenshot below
Then, copy cmd from Windows/System32 Directory (ex. C:\Windows\System32) and move it your apktool directory​
STEP 2
Download zipalign from HERE, move it to Windows Directory (ex. C:\Windows)​
GUIDE FOR TRANSPARENT STATUSBAR
SOON​
STEP 1
Copy your android.policy.jar from /system/framework/ and place it in your apktool directory
For CM10, Download PhoneWindowManager.zip and extract it to your apktool directory​
STEP 2
Open cmd in your apktool directory, type
Code:
apktool d android.policy.jar
STEP 3
For CM10
Go to android.policy.jar.out\smali\com\android\internal\policy\impl
Delete PhoneWindowManager.smali, replace with my PhoneWindowManager.smali
For CM10.1
Go to android.policy.jar.out\smali\com\android\internal\policy\impl
Open PhoneWindowManager.smali
Go to this
Code:
.method public getSystemDecorRectLw(Landroid/graphics/Rect;)I
Delete this
Code:
.method public getSystemDecorRectLw(Landroid/graphics/Rect;)I
.registers 3
.parameter "systemRect"
.prologue
.line 3057
iget v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mSystemLeft:I
iput v0, p1, Landroid/graphics/Rect;->left:I
.line 3058
iget v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mSystemTop:I
iput v0, p1, Landroid/graphics/Rect;->top:I
.line 3059
iget v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mSystemRight:I
iput v0, p1, Landroid/graphics/Rect;->right:I
.line 3060
iget v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mSystemBottom:I
iput v0, p1, Landroid/graphics/Rect;->bottom:I
.line 3061
[COLOR="Red"] iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mStatusBar:Landroid/view/WindowManagerPolicy$WindowState;
if-eqz v0, :cond_1b
iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mStatusBar:Landroid/view/WindowManagerPolicy$WindowState;
invoke-interface {v0}, Landroid/view/WindowManagerPolicy$WindowState;->getSurfaceLayer()I
move-result v0
.line 3063
:goto_1a
return v0
.line 3062
:cond_1b
iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mNavigationBar:Landroid/view/WindowManagerPolicy$WindowState;
if-eqz v0, :cond_26
iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mNavigationBar:Landroid/view/WindowManagerPolicy$WindowState;
invoke-interface {v0}, Landroid/view/WindowManagerPolicy$WindowState;->getSurfaceLayer()I
move-result v0
goto :goto_1a
.line 3063
:cond_26
const/4 v0, 0x0
goto :goto_1a
.end method[/COLOR]
And replace with this
Code:
[COLOR="red"]const/4 v0, 0x0
return v0
.end method[/COLOR]
So it will look like this
Code:
.method public getSystemDecorRectLw(Landroid/graphics/Rect;)I
.registers 3
.parameter "systemRect"
.prologue
.line 3057
iget v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mSystemLeft:I
iput v0, p1, Landroid/graphics/Rect;->left:I
.line 3058
iget v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mSystemTop:I
iput v0, p1, Landroid/graphics/Rect;->top:I
.line 3059
iget v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mSystemRight:I
iput v0, p1, Landroid/graphics/Rect;->right:I
.line 3060
iget v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mSystemBottom:I
iput v0, p1, Landroid/graphics/Rect;->bottom:I
.line 3061
[COLOR="Red"]const/4 v0, 0x0
return v0
.end method[/COLOR]
and save​
STEP 4
Open cmd in your apktool directory, type
Code:
apktool b android.policy.jar.out
Go to android.policy.jar.out\dist, then open android.policy.jar and original android.policy.jar with WinRAR, drag META-INF folder from original android.policy.jar to android.policy.jar, when it ask to compress click OK
Move your android.policy.jar to your phone, move it to /system/framework/ and change permission to rw-r--r--
Then reboot​
STEP 5
Download Xposed Framework and Xposed Tweakbox Module, Install and Open Xposed Framework, Tap on Install/Update, then Tap on Modules, enable Xposed Tweakbox Module, Open Xposed Tweakbox Module, Tap on Status Bar, enable background color and change color/transparency whatever you want​
GUIDE FOR TRANSPARENT NOTIFICATION DRAWER (CM10 ONLY)
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
STEP 1
Copy your framework-res.apk from system/framework and SystemUI.apk from /system/app/ then place it in your apktool directory​
STEP 2
Open cmd in your apktool directory, type
Code:
apktool if framework-res.apk
and
Code:
apktool if SystemUI.apk
then
Code:
apktool d SystemUI.apk
STEP 3
Go to SystemUI\smali\com\android\system ui\statusbar\phone
Open PhoneStatusBar$FastColorDrawable.smali with Notepad++
Go to this and edit
Code:
# virtual methods
.method public draw(Landroid/graphics/Canvas;)V
.locals 2
.parameter "canvas"
.prologue
.line 2856
[COLOR="Red"]iget v0, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar$FastColorDrawable;->mColor:I[/COLOR]
sget-object v1, Landroid/graphics/PorterDuff$Mode;->SRC:Landroid/graphics/PorterDuff$Mode;
invoke-virtual {p1, v0, v1}, Landroid/graphics/Canvas;->drawColor(ILandroid/graphics/PorterDuff$Mode;)V
.line 2857
return-void
.end method
to this
Code:
# virtual methods
.method public draw(Landroid/graphics/Canvas;)V
.locals 2
.parameter "canvas"
.prologue
.line 2856
[COLOR="Red"]const v0, (your transparency values; look at [URL="http://forum.xda-developers.com/showpost.php?p=40251761&postcount=4"]post #4[/URL])[/COLOR]
sget-object v1, Landroid/graphics/PorterDuff$Mode;->SRC:Landroid/graphics/PorterDuff$Mode;
invoke-virtual {p1, v0, v1}, Landroid/graphics/Canvas;->drawColor(ILandroid/graphics/PorterDuff$Mode;)V
.line 2857
return-void
.end method
and save​
STEP 4
Open cmd in your apktool directory, type
Code:
apktool b SystemUI al.apk
then open al.apk and SystemUI.apk with WinRAR, drag META-INF folder and AndroidManifest.xml from SystemUI.apk to al.apk, when it ask to compress click OK​
STEP 5
Open cmd in your apktool directory, type
Code:
zipalign -v 4 al.apk SystemUImod.apk
STEP 6
Move your SystemUImod.apk to your phone, rename to SystemUI.apk, move it to /system/app/ and change permission to rw-r--r--
Then reboot​
GUIDE FOR ADDING TASK MANAGER IN RECENT APP
Due to infringement copyright with TopDroid, you could found this guide here
[MOD][JB/CM10.1] Task Manager In Recent Apps [UPDATED][ALPHA 8] View Single Post
Many thanks to him!
GUIDE FOR FASTER & SMOOTHER NOTIFICATION DRAWER
Due to infringement copyright with TopDroid, you could found this guide here
[GUIDE][MOD][JB/CM10.1]Faster & Smoother Notification Panel
Many thanks to him!
GUIDE FOR XPERIA Z2 RECENT APPS (CM11 ONLY ATM)
STEP 1
Copy your framework-res.apk from system/framework and SystemUI.apk from /system/app/ then place it in your apktool directory​
STEP 2
Open cmd in your apktool directory, type
Code:
apktool if framework-res.apk
and
Code:
apktool if SystemUI.apk
then
Code:
apktool d SystemUI.apk
STEP 3
Go to SystemUI\res\layout\
Open status_bar_recent_item.xml with Notepad++
Clear all and change to this
Code:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout android:paddingTop="@dimen/status_bar_recents_item_padding" android:paddingBottom="@dimen/status_bar_recents_item_padding" android:clipChildren="false" android:layout_width="fill_parent" android:layout_height="wrap_content" android:importantForAccessibility="no"
xmlns:android="http://schemas.android.com/apk/res/android">
<RelativeLayout android:layout_gravity="center_horizontal" android:id="@id/recent_item" android:clipChildren="false" android:layout_width="wrap_content" android:layout_height="wrap_content">
<TextView android:textSize="@dimen/status_bar_recents_app_label_text_size" android:textColor="@color/status_bar_recents_app_label_color" android:ellipsize="marquee" android:id="@id/app_label" android:paddingTop="2.0dip" android:fadingEdge="horizontal" android:fadingEdgeLength="@dimen/status_bar_recents_text_fading_edge_length" android:layout_width="@dimen/status_bar_recents_app_label_width" android:layout_height="wrap_content" android:scrollHorizontally="true" android:singleLine="true" android:importantForAccessibility="no" android:textAlignment="viewStart" android:layout_marginStart="@dimen/status_bar_recents_app_label_left_margin" android:layout_alignParentStart="true" />
<FrameLayout android:id="@id/app_thumbnail" android:background="@drawable/recents_thumbnail_bg" android:visibility="invisible" android:layout_width="wrap_content" android:layout_height="wrap_content" android:foreground="@drawable/recents_thumbnail_fg" android:layout_alignParentTop="true" android:layout_marginStart="@dimen/status_bar_recents_thumbnail_left_margin" android:layout_toEndOf="@id/app_label">
<ImageView android:id="@id/app_thumbnail_image" android:layout_width="@dimen/status_bar_recents_thumbnail_width" android:layout_height="@dimen/status_bar_recents_thumbnail_height" />
</FrameLayout>
<View android:id="@id/recents_callout_line" android:background="@drawable/recents_callout_line" android:layout_width="@dimen/status_bar_recents_app_label_width" android:layout_height="1.0dip" android:layout_marginTop="3.0dip" android:layout_below="@id/app_label" android:layout_marginStart="@dimen/status_bar_recents_app_label_left_margin" android:layout_marginEnd="0.0dip" android:layout_alignParentStart="true" />
<ImageView android:id="@id/app_icon" android:visibility="invisible" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="@dimen/status_bar_recents_app_icon_top_margin" android:scaleType="centerInside" android:adjustViewBounds="true" android:maxWidth="@dimen/status_bar_recents_app_icon_max_width" android:maxHeight="@dimen/status_bar_recents_app_icon_max_height" android:layout_marginStart="@dimen/status_bar_recents_app_icon_left_margin" android:layout_below="@id/app_label" android:layout_alignStart="@id/app_label" />
<TextView android:textSize="@dimen/status_bar_recents_app_description_text_size" android:ellipsize="marquee" android:id="@id/app_description" android:fadingEdge="horizontal" android:fadingEdgeLength="@dimen/status_bar_recents_text_fading_edge_length" android:layout_width="@dimen/status_bar_recents_app_label_width" android:layout_height="wrap_content" android:layout_marginTop="3.0dip" android:scrollHorizontally="true" android:singleLine="true" android:layout_below="@id/recents_callout_line" android:textAlignment="viewStart" android:layout_marginStart="@dimen/status_bar_recents_app_label_left_margin" android:layout_alignParentStart="true" />
</RelativeLayout>
</FrameLayout>
and save​
STEP 4
Go to SystemUI\res\layout\
Open status_bar_recent_panel.xml with Notepad++
Clear all and change to this
Code:
<?xml version="1.0" encoding="utf-8"?>
<com.android.systemui.recent.RecentsPanelView android:id="@id/recents_root" android:layout_width="fill_parent" android:layout_height="fill_parent" android:foreground="@drawable/bg_protect" systemui:recentItemLayout="@layout/status_bar_recent_item"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui">
<FrameLayout android:id="@id/recents_bg_protect" android:background="@drawable/status_bar_recents_background" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_alignParentBottom="true">
<com.android.systemui.recent.RecentsVerticalScrollView android:layout_gravity="start|bottom|center" android:id="@id/recents_container" android:scrollbars="none" android:fadingEdge="vertical" android:fadingEdgeLength="@dimen/status_bar_recents_scroll_fading_edge_length" android:clipChildren="false" android:clipToPadding="false" android:layout_width="fill_parent" android:layout_height="wrap_content" android:stackFromBottom="true" android:divider="@null" android:layout_marginEnd="0.0dip">
<LinearLayout android:orientation="vertical" android:id="@id/recents_linear_layout" android:fitsSystemWindows="true" android:clipChildren="false" android:clipToPadding="false" android:layout_width="fill_parent" android:layout_height="wrap_content" />
</com.android.systemui.recent.RecentsVerticalScrollView>
<ImageView android:layout_gravity="bottom|left|center" android:id="@id/recents_clear" android:clickable="true" android:layout_width="@dimen/status_bar_recents_app_icon_max_width" android:layout_height="@dimen/status_bar_recents_app_icon_max_height" android:src="@drawable/ic_recents_clear" android:scaleType="center" />
</FrameLayout>
<include android:id="@id/recents_no_apps" android:visibility="invisible" android:layout_width="fill_parent" android:layout_height="fill_parent" layout="@layout/status_bar_no_recent_apps" />
</com.android.systemui.recent.RecentsPanelView>
and save​
STEP 5
Go to SystemUI\res\values\
Open dimens.xml with Notepad++
Go to this and edit
Code:
<dimen name="status_bar_recents_thumbnail_left_margin">[COLOR="Red"]20.0dip[/COLOR]</dimen>
<dimen name="status_bar_recents_text_description_padding">8.0dip</dimen>
<dimen name="status_bar_recents_app_label_width">88.0dip</dimen>
<dimen name="status_bar_recents_app_label_left_margin">[COLOR="red"]0.0dip[/COLOR]</dimen>
<dimen name="status_bar_recents_item_padding">0.0dip</dimen>
<dimen name="status_bar_recents_app_icon_translate_distance">35.0dip</dimen>
<dimen name="status_bar_recents_app_icon_left_margin">0.0dip</dimen>
<dimen name="status_bar_recents_app_icon_top_margin">[COLOR="red"]8.0dip[/COLOR]</dimen>
to this
Code:
<dimen name="status_bar_recents_thumbnail_left_margin">[COLOR="Green"]10.0dip[/COLOR]</dimen>
<dimen name="status_bar_recents_text_description_padding">8.0dip</dimen>
<dimen name="status_bar_recents_app_label_width">88.0dip</dimen>
<dimen name="status_bar_recents_app_label_left_margin">[COLOR="Green"]20.0dip[/COLOR]</dimen>
<dimen name="status_bar_recents_item_padding">0.0dip</dimen>
<dimen name="status_bar_recents_app_icon_translate_distance">35.0dip</dimen>
<dimen name="status_bar_recents_app_icon_left_margin">0.0dip</dimen>
<dimen name="status_bar_recents_app_icon_top_margin">[COLOR="Green"]10.0dip[/COLOR]</dimen>
and save​
STEP 6
Open cmd in your apktool directory, type
Code:
apktool b SystemUI al.apk
then open al.apk and SystemUI.apk with WinRAR, drag META-INF folder and AndroidManifest.xml from SystemUI.apk to al.apk, when it ask to compress click OK​
STEP 7
Open cmd in your apktool directory, type
Code:
zipalign -v 4 al.apk SystemUImod.apk
STEP 8
Move your SystemUImod.apk to your phone, rename to SystemUI.apk, move it to /system/app/ and change permission to rw-r--r--
Then reboot​
WAIT! Reserved...
CREDITS TO
@powerpoint45 for his Compiling Guide here
@reaper61616 for his Transparent Notification Drawer Guide here
@Adi_ai****eru for his PhoneWindowManager.smali here
@Adi Aisiteru Reborn for his Transparent Status Bar Guide here
@galaxynote2 for his Transparent Status Bar Guide here
@TopDroid for his Task Manager in Recent App Guide here​
!
@Diaz1999
first! u makin a new thread for cleaning up?
also have a problem:
can u help me increase transparency of notification drawer?? i mean ur right it is already transparent, but i wish transparency at 50% or more personally also tried with TuT for cm 10 (i'm on cm10.1) but the file ''PhoneStatusBar$FastColorDrawable.smali'' dont exist there , any ideas ??
also did u have an idea, hoe to remove carrier logo in notification?? u tried method with ''eri.xml'' and pushed it to phone/data -> not work.
also edited it directly in framework-res , recompiled and pushed to system it didnt works...
any ideas where i can look for?
thanks! peace, bejunk
Thread Completed! Sorry for waiting, yesterday I'm going to village with my family, so no internet connection there
bejunk said:
@Diaz1999
first! u makin a new thread for cleaning up?
also have a problem:
can u help me increase transparency of notification drawer?? i mean ur right it is already transparent, but i wish transparency at 50% or more personally also tried with TuT for cm 10 (i'm on cm10.1) but the file ''PhoneStatusBar$FastColorDrawable.smali'' dont exist there , any ideas ??
also did u have an idea, hoe to remove carrier logo in notification?? u tried method with ''eri.xml'' and pushed it to phone/data -> not work.
also edited it directly in framework-res , recompiled and pushed to system it didnt works...
any ideas where i can look for?
thanks! peace, bejunk
Click to expand...
Click to collapse
Yes, for CM10.1 go to SystemUI\smali\com\android\systemui\statusbar\phone, Open NotificationPanelView.smali and SettingsPanelView.smali
I found this line
Code:
.method public draw(Landroid/graphics/Canvas;)V
But I don't know about smali editing, which line for changing Notification Drawer Transparency :crying:
EDIT @bejunk what's your mean by removing 'carrier logo' in notification? there's no carrier logo there
Hi @Diaz1999
Nice mod tutorial you have! Anyway, do you know how to add a dimming animation when we pull down the status bar? If so, can you provide the codes on your thread? ^_^
Btw, here's the sample video: http://www.youtube.com/watch?feature=player_embedded&v=VFwRxJSIaXI
EDIT
I tried the mod for Smoother and faster notification drawer, it works! but it's not really smooth. Anyway, what line should I change in order to modify the speed of notification drawer by dropping down and pulling up? I want the speed one like on CM10, it's very smooth when dropping down the notification drawer
Diaz1999 said:
Thread Completed! Sorry for waiting, yesterday I'm going to village with my family, so no internet connection there
Yes, for CM10.1 go to SystemUI\smali\com\android\systemui\statusbar\phone, Open NotificationPanelView.smali and SettingsPanelView.smali
I found this line
Code:
.method public draw(Landroid/graphics/Canvas;)V
But I don't know about smali editing, which line for changing Notification Drawer Transparency :crying:
EDIT @bejunk what's your mean by removing 'carrier logo' in notification? there's no carrier logo there
Click to expand...
Click to collapse
no problem bro, thanks for providung u this thread all @ one place (AND CLEAN! woohoo!)
i taked only a quick look into ur mentioned file for notification drawer transparency, but i didnt found anything like u :crying:, but im looking forward into this if i find sth i post it here, thank u anyway that u helped
for the carrier logo i wanna REMOVE, look in pics, i mean there some threads about this which say u must edit eri.xml (done) but i didnt work for me (tried several times:crying.....
you can ADD ALSO THIS TO UR THREAD: http://forum.xda-developers.com/showpost.php?p=40278487&postcount=4
(probably u know it) it works very well on cm 9,10 (.1) and (.2) BUT!!!! DONT USE 1ST STEP (otherwise systemUI wont work) so start at step 2 ''. /res/values/integers.xml''', and all will be fine
peace, bejunk
Hey, I try to add Task Manager on CM10 rom, but I don't found the RecentsActivity.smali, this file don't exist, can you help me with this?
For @bejunk and everyone :
There's actually NO need to play with smali (or other hard things)
to get the notification drawer transparency (in any level) as well as change it's color..
The only thing u need is just edit the res/drawable-mdpi/notification_panel_bg.9.png
i'm using photoshop because it's easier and it's the only software i have to edit 9.png properly..
But please note that i recommended to use un-moded SystemUI for best result..
Oh and for anyone who didn't get any idea on how to play with 9.png yet,
u can go here to learn the basic stuff
(just to remind: There're plenty tuts on Google)
Good luck
Edit :
Again, i have a couple very easy tricks to remove carrier label,
but i think this one is easiest :
1. open res/values/dimens.xml
2. find carrier_label_height
3. change the value to 0dip
bejunk said:
no problem bro, thanks for providung u this thread all @ one place (AND CLEAN! woohoo!)
i taked only a quick look into ur mentioned file for notification drawer transparency, but i didnt found anything like u :crying:, but im looking forward into this if i find sth i post it here, thank u anyway that u helped
for the carrier logo i wanna REMOVE, look in pics, i mean there some threads about this which say u must edit eri.xml (done) but i didnt work for me (tried several times:crying.....
you can ADD ALSO THIS TO UR THREAD: http://forum.xda-developers.com/showpost.php?p=40278487&postcount=4
(probably u know it) it works very well on cm 9,10 (.1) and (.2) BUT!!!! DONT USE 1ST STEP (otherwise systemUI wont work) so start at step 2 ''. /res/values/integers.xml''', and all will be fine
peace, bejunk
Click to expand...
Click to collapse
That's carrier label, not logo :silly:
I've found this method, give thanks to him, not me!
>http://forum.xda-developers.com/showpost.php?p=41823335&postcount=2<
marc3l0 said:
Hey, I try to add Task Manager on CM10 rom, but I don't found the RecentsActivity.smali, this file don't exist, can you help me with this?
Click to expand...
Click to collapse
Based on this thread
(Guide) CM9/10 add Samsung Taskmanager to Recent Panel
For CM10, Go to smali/com/android/systemui/
Open SystemUIService.smali
Add this to the bottom/ the last line
Code:
.method public openTaskManager(Landroid/view/View;)V
.locals 5
.parameter "view"
.prologue
.line 99
.line 100
:try_start_0
new-instance v1, Landroid/content/Intent;
invoke-direct {v1}, Landroid/content/Intent;-><init>()V
.line 102
.local v1, intent:Landroid/content/Intent;
const-string v2, "android.intent.action.MAIN"
invoke-virtual {v1, v2}, Landroid/content/Intent;->setAction(Ljava/lang/String;)Landroid/content/Intent;
.line 105
const/high16 v2, 0x1000
invoke-virtual {v1, v2}, Landroid/content/Intent;->setFlags(I)Landroid/content/Intent;
.line 107
const-string v2, "com.sec.android.app.controlpanel"
const-string v3, "com.sec.android.app.controlpanel.activity.JobManagerActivity"
invoke-virtual {v1, v2, v3}, Landroid/content/Intent;->setClassName(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
invoke-virtual {p0, v1}, Lcom/android/systemui/SystemUIService;->startActivity(Landroid/content/Intent;)V
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
.line 109
.line 112
.end local v1 #intent:Landroid/content/Intent;
:goto_0
return-void
.line 115
:catch_0
move-exception v0
.line 117
.local v0, e:Ljava/lang/Exception;
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
goto :goto_0
.end method
Updated with Guide for Xperia Z2 Recent Apps! (CM11 ONLY ATM)
hey, i very appreciate your tutorial for z2 taskswitcher , its very easy to apply but i have one thing. as you see in the attached picture i use OSB. those cover the clear all button. i want this button above OSB. can you atleast say me which is the value for place of clear all button?? i can test the dips myself . very thx
also a tip for those who are not familiar with''cmd apktool'', you can use this http://forum.xda-developers.com/showthread.php?t=2639400 (every n00b should can do this with this) also it sign automazic
Sorry but what's the difference b/w Z2 recents app and default (CM11)??
bejunk said:
hey, i very appreciate your tutorial for z2 taskswitcher , its very easy to apply but i have one thing. as you see in the attached picture i use OSB. those cover the clear all button. i want this button above OSB. can you atleast say me which is the value for place of clear all button?? i can test the dips myself . very thx
also a tip for those who are not familiar with''cmd apktool'', you can use this http://forum.xda-developers.com/showthread.php?t=2639400 (every n00b should can do this with this) also it sign automazic
Click to expand...
Click to collapse
Perhaps you could add some layout_marginBottom at the recents_clear button, same as the nav bar height
noumanhamid said:
Sorry but what's the difference b/w Z2 recents app and default (CM11)??
Click to expand...
Click to collapse
The App icon didn't cover up the App thumbnail, which is quite useful, at least for me
Sent from my WT19i using Tapatalk

Categories

Resources