Related
If you like it then dont forget THANKS Button
Things You Need
-smabakv1(attached)- its easier for n00bs
-notepad++
-7-zip
-android.policy.jar(MIUI ROM)
-modded smali's(Attached)
Lets Start
1)Download smabakv1 its attached in post, extract it some where you can easily access it.
2)Copy your android.policy.jar to the directory where you extracted smabakv1.
3)Now run "Run Me.bat" and press 1 to decompile. you will get a classout folder.
4)navigate to "classout\com\android\internal\policy\impl\"
5)open "MiuiGlobalActions$SinglePressAction.smali" in notepad++
6)you need to add the highlighted code exactly where it is shown
Code:
.end annotation
[COLOR="RoyalBlue"][B]# static fields
.field protected static rebootMode:I
.field protected static final rebootOptions:[Ljava/lang/String;[/B][/COLOR]
# instance fields
.field private mIconResId:I
Code:
.field private mTextview:Landroid/widget/TextView;
# direct methods
[COLOR="RoyalBlue"][B].method static constructor <clinit>()V
.registers 3
const/4 v0, 0x3
new-array v0, v0, [Ljava/lang/String;
const/4 v1, 0x0
const-string v2, "Normal"
aput-object v2, v0, v1
const/4 v1, 0x1
const-string v2, "Recovery"
aput-object v2, v0, v1
const/4 v1, 0x2
const-string v2, "Bootloader"
aput-object v2, v0, v1
sput-object v0, Lcom/android/internal/policy/impl/MiuiGlobalActions$SinglePressAction;->rebootOptions:[Ljava/lang/String;
return-void
.end method[/B][/COLOR]
.method protected constructor <init>(II)V
.registers 3
.parameter "iconResId"
.parameter "messageResId"
7)now open "MiuiGlobalActions.smali" with notepad++ located in the same place.
8)search for "MiuiGlobalActions$3" and replace it with "MiuiGlobalActions$222"
99% of time you need to replace MiuiGlobalActions$3,.... but for some devices MiuiGlobalActions$x where x is a number, is diffrent
to find out which is yours
Code:
findstr /n /i /c:"rebootSafeMode" *
you should get something similar to this
Code:
invoke-interface {v0}, Landroid/view/WindowManagerPolicy$WindowManagerFuncs;->rebootSafeMode()V
now that is your MiuiGlobalActions$x
just replace your MiuiGlobalActions$x with MiuiGlobalActions$222 in MiuiGlobalActions.smali
Click to expand...
Click to collapse
these two places you should change in MiuiGlobalActions.smali
Code:
new-instance v1, Lcom/android/internal/policy/impl/[B]MiuiGlobalActions$3[/B];
Code:
invoke-direct {v1, p0, v2, v3}, Lcom/android/internal/policy/impl/[B]MiuiGlobalActions$3[/B];-><init>(Lcom/android/internal/policy/impl/MiuiGlobalActions;II)V
Note: you need to replace it only in two places
this is for fun,... open "MiuiGlobalActions$222" in notepad++
look for "Reboot phone" and change it to what ever you want
Click to expand...
Click to collapse
Code:
invoke-direct {v1, v2}, Landroid/app/AlertDialog$Builder;-><init>(Landroid/content/Context;)V
const-string v2, "Reboot phone" [B][COLOR="Blue"]<------ Change it to what ever you want[/COLOR][/B]
invoke-virtual {v1, v2}, Landroid/app/AlertDialog$Builder;->setTitle(Ljava/lang/CharSequence;)Landroid/app/AlertDialog$Builder;
move-result-object v1
9)download modded smali's and place them in the same directory
"classout\com\android\internal\policy\impl\"
10)again run "run me.bat" and select 2 to recompile, you will get "classes.dex"
11)open your "android.policy.jar" in 7-zip and add the "classes.dex" to it,... yes replace it,...
12)push it to your phone, make a rom or do what ever you want from here,...
13)hit THANKS if you like it and feel it was useful
--------------------------------------------------------------------------------------------------------------------------------------
thanks to
Code:
kong, miui, android, kahvitahra, snq- and any1 whom ive forgotten please remind me
thank you sir!!
can you make something like this but to change the autobrightness ? like to default or to other values ?
thanks!!
ruizit0 said:
thank you sir!!
can you make something like this but to change the autobrightness ? like to default or to other values ?
thanks!!
Click to expand...
Click to collapse
maybe tmrw!!! or when i have free time,...
have u tried it on ur own? is it working?
also i have tried the same method from a diff source which was for ICS builds but it didnt work.
more to it, i dont have ShutdownThread;->reboot string in any smali present in IMPL!
Ozadroid said:
have u tried it on ur own? is it working?
also i have tried the same method from a diff source which was for ICS builds but it didnt work.
more to it, i dont have ShutdownThread;->reboot string in any smali present in IMPL!
Click to expand...
Click to collapse
sorry my mistake,... there is no more,... ShutdownThread;->reboot in jb
The smalis are modded for jb...
Which device ur in??? Or porting from where??
did you try replacing "MiuiGlobalActions$3" with "MiuiGlobalActions$222" ????
chiragkrishna said:
sorry my mistake,... there is no more,... ShutdownThread;->reboot in jb
The smalis are modded for jb...
Which device ur in??? Or porting from where??
did you try replacing "MiuiGlobalActions$3" with "MiuiGlobalActions$222" ????
Click to expand...
Click to collapse
nope i dint try urs.. will do it after i finish my work with Miui4 as Miui4.1 is not to the mark for my device!
Ozadroid said:
nope i dint try urs.. will do it after i finish my work with Miui4 as Miui4.1 is not to the mark for my device!
Click to expand...
Click to collapse
updated the guide,... it should be easier now,...
chiragkrishna said:
updated the guide,... it should be easier now,...
Click to expand...
Click to collapse
have you tried it by yourself?? or just posted ??
Thanks for the guide!
Is it possible to include Hot Boot Option? I really miss it
v1r0x said:
Thanks for the guide!
Is it possible to include Hot Boot Option? I really miss it
Click to expand...
Click to collapse
yes it is possible.. i'll just have to unpack my policy
Ozadroid said:
have you tried it by yourself?? or just posted ??
Click to expand...
Click to collapse
i had done that thing only,... but in the guide i screwed up,...
v1r0x said:
Thanks for the guide!
Is it possible to include Hot Boot Option? I really miss it
Click to expand...
Click to collapse
send me the android.policy.jar with HOT BOOT Option
v1r0x said:
Thanks for the guide!
Is it possible to include Hot Boot Option? I really miss it
Click to expand...
Click to collapse
chiragkrishna said:
i had done that thing only,... but in the guide i screwed up,...
send me the android.policy.jar with HOT BOOT Option
Click to expand...
Click to collapse
replace the below .method static constructor <clinit> in your guide and you'll get the 4-way Reboot !
Code:
.method static constructor <clinit>()V
.registers 4
const-string v2, "Droid"
sget-object v3, Landroid/os/Build;->MODEL:Ljava/lang/String;
invoke-virtual {v2, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-nez v2, :cond_3b
const-string v2, "GT-I9000"
sget-object v3, Landroid/os/Build;->MODEL:Ljava/lang/String;
invoke-virtual {v2, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-nez v2, :cond_3b
const/4 v0, 0x4
new-array v0, v0, [Ljava/lang/String;
const/4 v1, 0x0
const-string v2, "Normal"
aput-object v2, v0, v1
const/4 v1, 0x1
const-string v2, "Hot Boot"
aput-object v2, v0, v1
const/4 v1, 0x2
const-string v2, "GT-I9100"
sget-object v3, Landroid/os/Build;->MODEL:Ljava/lang/String;
invoke-virtual {v2, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-nez v2, :cond_2f
const-string v2, "Bootloader"
goto :goto_31
:cond_2f
const-string v2, "Download"
:goto_31
aput-object v2, v0, v1
const/4 v1, 0x3
const-string v2, "Recovery"
aput-object v2, v0, v1
sput-object v0, Lcom/android/internal/policy/impl/MiuiGlobalActions$SinglePressAction;->rebootOptions:[Ljava/lang/String;
goto :goto_4f
:cond_3b
const/4 v0, 0x3
new-array v0, v0, [Ljava/lang/String;
const/4 v1, 0x0
const-string v2, "Normal"
aput-object v2, v0, v1
const/4 v1, 0x1
const-string v2, "Hot Boot"
aput-object v2, v0, v1
const/4 v1, 0x2
const-string v2, "Recovery"
aput-object v2, v0, v1
sput-object v0, Lcom/android/internal/policy/impl/MiuiGlobalActions$SinglePressAction;->rebootOptions:[Ljava/lang/String;
:goto_4f
return-void
.end method
Thanks Ozadroid, but I think Hot Boot doesn't work :/
After hit "Ok" the phone reboots including the htc splash screen. So I think it's a regular reboot?
@OP:
another question^^'
Any idea if it is possible to store the "reboot phone" line in a variable in framework-res or somethink like that?
Think this would be good for a multi lang rom
v1r0x said:
Thanks Ozadroid, but I think Hot Boot doesn't work :/
After hit "Ok" the phone reboots including the htc splash screen. So I think it's a regular reboot?
Click to expand...
Click to collapse
yeah i think so!
but try like this! make a call and try hot boot while the call goes on! if the call gets cut its a normal reboot, if not congrats
I have chinesse tablet
will the same script works on this jellybean tablet
too bad I am getting the following errors trying to recompile android.policy.jar
classout/com/android/internal/policy/impl/MiuiGlobalActions$222$1.smali[27,4] Error for input '.parameter': Invalid directive
classout/com/android/internal/policy/impl/MiuiGlobalActions$222$1.smali[42,4] Error for input '.parameter': Invalid directive
classout/com/android/internal/policy/impl/MiuiGlobalActions$222$1.smali[43,4] Error for input '.parameter': Invalid directive
classout/com/android/internal/policy/impl/MiuiGlobalActions$222$1.smali[42,15] mismatched input '"dialog"' expecting END_METHOD_DIRECTIVE
any help
This is a guide on how to enable unlimited apps on the traybar. This is for devs or users who want to do the mod themselves and include in their custom or own rom.
Tools:
1. apktools/smali/baksmali
2. 7zip
3. notepad++
4. knowledge of using the above tools and decompiling and recompiling.
Guide:
Part I: Editing services.jar
1. Decompile services.jar and edit MultiWindowManagerService.smali located in com/android/server/am folder. Search for the following code and insert the one with ++ highlighted in red (dont include the ++ just the goto :cond_10). Note that cond_10 may be different for your version so look for "const/4 v0, 0x1" below, above it is your "cond_xx" and edit the "goto :cond_10" like "goto :cond_xx".
Code:
.method public isSupportApp(Ljava/lang/String;)Z
.registers 3
.parameter "packageName"
.prologue
.line 410
[COLOR="Red"]++goto :cond_10[/COLOR]
iget-object v0, p0, Lcom/android/server/am/MultiWindowManagerService;->mSupportAppList:Ljava/util/ArrayList;
invoke-virtual {v0, p1}, Ljava/util/ArrayList;->contains(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_10
const-string v0, "android"
invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_12
.line 411
[COLOR="Red"]:cond_10[/COLOR]
const/4 v0, 0x1
.line 414
:goto_11
return v0
:cond_12
const/4 v0, 0x0
goto :goto_11
.end method
2. Recompile.
Part II: Editing SystemUI.apk
1. Decompile SystemUI.apk and edit MiniModeAppsPanel.smali located in com/android/systemui/statusbar folder. Search for "CATEGORY_MULTIWINDOW_LAUNCHER". Just delete the line with "--" highlighted in blue and add the line with "++" highlighted in red. Make sure that the v7 in "const-string v7" is the same as the v7 in "sget-object v7". It could be v11 or v22 or whatever so make sure to edit the "const-string vx" with the correct vx value in "const-string vx".
Code:
[COLOR="Red"]++const-string v7, "android.intent.category.LAUNCHER"[/COLOR]
[COLOR="Blue"]--sget-object v7, Lcom/android/systemui/multiwindow/MultiWindowReflector$Intent;->CATEGORY_MULTIWINDOW_LAUNCHER:Ljava/lang/String;[/COLOR]
2. Recompile.
Part III: Push the edited services.jar and SystemUI.apk to your tablet and reboot.
Awesome dude!! Thanks!
worked perfectly for the new 8013!!
http://d-h.st/YRJ
selective disable?
In general this is really awesome and I really appreciate the options this gives me, but there are some apps where I wish this was either disabled or the overlay button was in another spot. Being right over the enter key on my keyboard or near a button in a game tends to cause some grief for me. Any suggestions?
Edit: Found the answer. Lol. http://forum.xda-developers.com/showthread.php?t=2136313
Hi guys,,
Today's tutorial will make us able to create new tab in settings menu by which we could control our ROM CSC features by toggles..
{
"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"
}
This tutorial will be divided into 2 main sections:
Section #1: Creating new tab in settings menu (ROM CSC features controller)
Section #2: Creating toggle listener in apk that contains the csc feature that we want to control
So let's start..
<< Section #1: Creating new tab in settings menu (ROM CSC features controller) >>
First download the resources from attachment bellow.
- Decompile SecSettings.apk
- Navigate to res\xml folder and open settings_headers.xml and add this line wherever you want the new tab to appear in your settings menu later on:
Code:
<header android:icon="@drawable/ic_csc_controller" android:id="@id/csc_control" android:title="@string/csc_features_controller" android:fragment="com.android.settings.romhack.CscSettings" />
- Still in the same res\xml folder, paste csc_settings.xml there from resources file.
- Navigate to res\drawable-xhdpi folder and paste ic_csc_controller.png from resource file there.
- Navigate to res\values folder and open ids.xml file and add this line at the end:
Code:
<item type="id" name="csc_control">false</item>
- Navigate to res\values folder and open strings.xml and add these lines:
Code:
<string name="csc_features_controller">ROM CSC features controller</string>
<string name="how_csc_use">Tip:</string>
<string name="how_csc_use_summary">After you made your choices, you may need to restart your device in order to load some csc features changes</string>
<string name="glory_twlauncher">GloryROM TW Launcher CSC Features</string>
<string name="twlauncher_tilt">Transition tilt effect</string>
<string name="twlauncher_page_rotation">Home screens looping</string>
<string name="twlauncher_edit_mode">Home screen edit menu</string>
<string name="glory_twcontacts">GloryROM TW Contacts CSC Features</string>
<string name="twcontacts_photo">Contacts photos</string>
<string name="twcontacts_contacts_call_btn">Contacts list call buttons</string>
<string name="twcontacts_logs_call_btn">Logs list call buttons</string>
<string name="glory_twbrowser">GloryROM TW Browser CSC Features</string>
<string name="twbrowser_exit_option">Exit browser option</string>
<string name="twbrowser_exit_prompt">Exit prompt</string>
<string name="twbrowser_home_menu">Home page option</string>
<string name="glory_twsettings">GloryROM TW Settings CSC Features</string>
<string name="twsettings_call_msg_blk">Call/message block menu</string>
<string name="twsettings_data_reset_password">Factory data reset password</string>
<string name="twsettings_update_menu">Software update menu</string>
<string name="csc_off">Disabled</string>
<string name="csc_on">Enabled</string>
- Now you need to compile SecSettings.apk to create new ids in public.xml file..
- Now decompile the new SecSettings.apk, and go to res\values folder and open public.xml and locate this line:
Code:
<public type="xml" name="csc_settings" id="[B][COLOR="Red"]0x7f07008e[/COLOR][/B]" />
Remember that id, we will use it later.
- Now go to smali\com\android\settings folder and paste the folder romhack there from resource file.
- Now open the new folder romhack, and open CscSettings.smali
- Search for the method ".method public onCreate(Landroid/os/Bundle;)V" and change the id here to the one in public.xml before:
Code:
const v1, [B][COLOR="Red"]0x7f07008e[/COLOR][/B]
That's all for SecSettings.apk, compile and push to your phone and test it.. You should have extra tab with several check boxes inside but still not functioned yet..
Now we need to add check box listeners for each csc feature in different apks...
N.B:
I have put several comments on CscSettings.smali, so you could extend your csc list in future just by following the comments in the smali and add new values in csc_settings.xml and strings.xml
Click to expand...
Click to collapse
<< Section #2: Creating toggle listener in apk that contains the csc feature that we want to control >>
Here, we will add check box listeners for each csc feature in different apks
Ok, let's start :victory:
★ TW Launcher ★
- Baksmali SecLauncher2.apk
- Navigate to classout\com\android\launcher2 folder and open Launcher.smali
- Search for "CscFeature_Launcher_HomeScreenEditMode" and add blue lines and delete red line (pay attention to condition value):
Code:
.line 299
.end local v0 # "IsProvisioned":Z
:cond_95
:goto_95
[B][COLOR="RoyalBlue"]invoke-virtual {p0}, Lcom/android/launcher2/Launcher;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v9
const-string v10, "edit_mode"
invoke-static {v9, v10, v13}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v9
if-eqz v9, :cond_a3[/COLOR] [COLOR="Green"]#<!-- The condition value should be the same as deleted red one bellow[/COLOR][/B]
invoke-static {}, Lcom/sec/android/app/CscFeature;->getInstance()Lcom/sec/android/app/CscFeature;
move-result-object v9
const-string v10, "CscFeature_Launcher_HomeScreenEditMode"
invoke-virtual {v9, v10}, Lcom/sec/android/app/CscFeature;->getEnableStatus(Ljava/lang/String;)Z
move-result v9
[B][COLOR="RoyalBlue"]const/4 v9, 0x1[/COLOR][/B]
[B][COLOR="Red"]if-eqz v9, :cond_a3[/COLOR][/B]
- Search for "CscFeature_Launcher_DisableTiltEffect" and add blue lines and delete red line (pay attention to condition value):
Code:
.line 302
:cond_a3
[B][COLOR="RoyalBlue"]invoke-virtual {p0}, Lcom/android/launcher2/Launcher;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v9
const-string v10, "tilt_effect"
invoke-static {v9, v10, v13}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v9
if-nez v9, :cond_b1[/COLOR] [COLOR="Green"]#<!-- The condition value should be the same as deleted red one bellow[/COLOR][/B]
invoke-static {}, Lcom/sec/android/app/CscFeature;->getInstance()Lcom/sec/android/app/CscFeature;
move-result-object v9
const-string v10, "CscFeature_Launcher_DisableTiltEffect"
invoke-virtual {v9, v10}, Lcom/sec/android/app/CscFeature;->getEnableStatus(Ljava/lang/String;)Z
move-result v9
[B][COLOR="RoyalBlue"]const/4 v9, 0x1[/COLOR][/B]
[B][COLOR="Red"]if-eqz v9, :cond_b1[/COLOR][/B]
Make sure of v13 is reflecting consta/4 vx, 0x0 flag if you scrolled up at the beginning of the same method which includes this csc feature... see here to understand:
Code:
.method protected onCreate(Landroid/os/Bundle;)V
.registers 16
.param p1, "savedInstanceState" # Landroid/os/Bundle;
.prologue
[B][COLOR="Red"]const/4 v13, 0x0[/COLOR][/B]
const/4 v12, 0x1
Click to expand...
Click to collapse
- Save changes.
- Navigate to classout\com\android\launcher2 folder and open PagedView.smali
- Search for method ".method private isLoopingDisabledInCSC()Z" and change the whole method to:
Code:
[B][COLOR="RoyalBlue"].method private isLoopingDisabledInCSC()Z
.registers 5
const/4 v0, 0x0
const/4 v1, 0x1
invoke-virtual {p0}, Lcom/android/launcher2/PagedView;->getContext()Landroid/content/Context;
move-result-object v2
invoke-virtual {v2}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v2
const-string v3, "page_rotation"
invoke-static {v2, v3, v0}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v2
if-eqz v2, :cond_majdinj
invoke-static {}, Lcom/sec/android/app/CscFeature;->getInstance()Lcom/sec/android/app/CscFeature;
move-result-object v1
const-string v2, "CscFeature_Launcher_DisablePageRotation"
invoke-virtual {v1, v2}, Lcom/sec/android/app/CscFeature;->getEnableStatus(Ljava/lang/String;)Z
move-result v0
return v0
:cond_majdinj
return v1
.end method[/COLOR][/B]
- Save changes.. and compile
★ TW Contacts ★
- Baksmali SecContacts.apk
- Navigate to classout\com\android\contacts\list folder and open ContactEntryListAdapter.smali
- Search for ""CscFeature_Contact_DisableContactPhoto"" and add blue lines and delete red line (pay attention to condition value):
Code:
.method protected bindQuickContact(Lcom/android/contacts/list/ContactListItemView;ILandroid/database/Cursor;III)V
.registers 14
.param p1, "view" # Lcom/android/contacts/list/ContactListItemView;
.param p2, "partitionIndex" # I
.param p3, "cursor" # Landroid/database/Cursor;
.param p4, "photoIdColumn" # I
.param p5, "contactIdColumn" # I
.param p6, "lookUpKeyColumn" # I
.prologue
.line 764
[B][COLOR="RoyalBlue"]iget-object v0, p0, Lcom/android/contacts/list/ContactEntryListAdapter;->mContext:Landroid/content/Context;
invoke-virtual {v0}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v0
const-string v1, "contacts_list_photo"
const/4 v2, 0x0
invoke-static {v0, v1, v2}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v0
if-nez v0, :cond_10[/COLOR] [COLOR="Green"]#<!-- The condition value should be the same as deleted red one bellow[/COLOR][/B]
invoke-static {}, Lcom/sec/android/app/CscFeature;->getInstance()Lcom/sec/android/app/CscFeature;
move-result-object v0
const-string v4, "CscFeature_Contact_DisableContactPhoto"
invoke-virtual {v0, v4}, Lcom/sec/android/app/CscFeature;->getEnableStatus(Ljava/lang/String;)Z
move-result v0
[B][COLOR="RoyalBlue"]const/4 v0, 0x1[/COLOR][/B]
[B][COLOR="Red"]if-eqz v0, :cond_10[/COLOR][/B]
- Save changes.
- Navigate to classout\com\android\contacts\list folder and open DefaultContactListAdapter.smali
- Search for ""CscFeature_Contact_EnableCallButtonInList"" and add blue lines and delete red line (pay attention to condition value):
Code:
.line 455
:goto_8b
[B][COLOR="RoyalBlue"]iget-object v2, p0, Lcom/android/contacts/list/DefaultContactListAdapter;->mContext:Landroid/content/Context;
invoke-virtual {v2}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v2
const-string v8, "contacts_list_call_btn"
const/4 v0, 0x0
invoke-static {v2, v8, v0}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v2
if-eqz v2, :cond_c4[/COLOR] [COLOR="Green"]#<!-- The condition value should be the same as deleted red one bellow[/COLOR][/B]
invoke-static {}, Lcom/sec/android/app/CscFeature;->getInstance()Lcom/sec/android/app/CscFeature;
move-result-object v0
const-string v2, "CscFeature_Contact_EnableCallButtonInList"
invoke-virtual {v0, v2}, Lcom/sec/android/app/CscFeature;->getEnableStatus(Ljava/lang/String;)Z
move-result v0
[B][COLOR="RoyalBlue"]const/4 v0, 0x1[/COLOR][/B]
[B][COLOR="Red"]if-eqz v0, :cond_c4[/COLOR][/B]
iget-boolean v0, p0, Lcom/android/contacts/list/DefaultContactListAdapter;->mShowCallButton:Z
[B][COLOR="RoyalBlue"]const/4 v0, 0x1[/COLOR][/B]
[B][COLOR="Red"]if-eqz v0, :cond_c4[/COLOR][/B]
- Save changes.
- Navigate to classout\com\sec\android\app\dialertab\calllog and open CallLogAdapter.smali
- Search for ""CscFeature_Contact_EnableCallButtonInList"", there will be 2 results, we will be working on the 2nd one. Now add blue lines and delete red line (pay attention to condition value):
Code:
.line 1358
[B][COLOR="RoyalBlue"]move-object/from16 v0, p0
iget-object v5, v0, Lcom/sec/android/app/dialertab/calllog/CallLogAdapter;->mContext:Landroid/content/Context;
invoke-virtual {v5}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v18
const-string v19, "logs_list_call_btn"
const/16 v20, 0x0
invoke-static/range {v18 .. v20}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v18
if-eqz v18, :cond_257[/COLOR] [COLOR="Green"]#<!-- The condition value should be the same as deleted red one bellow[/COLOR][/B]
invoke-static {}, Lcom/sec/android/app/CscFeature;->getInstance()Lcom/sec/android/app/CscFeature;
move-result-object v5
const-string v6, "CscFeature_Contact_EnableCallButtonInList"
invoke-virtual {v5, v6}, Lcom/sec/android/app/CscFeature;->getEnableStatus(Ljava/lang/String;)Z
move-result v5
[B][COLOR="RoyalBlue"]const/4 v5, 0x1[/COLOR][/B]
[B][COLOR="Red"]if-eqz v5, :cond_257[/COLOR][/B]
- Save changes... Compile.
N.B: You may get FC if you open phone app, to overcome that, you need to set compiling compression level to 0 or drag and drop the modified classes.dex in the original SecContacts.apk then push to phone.
★ TW Browser ★
- Baksmali SecBrowser.apk
- Navigate to classout\com\android\browser folder and open Controller.smali
- In the method ".method goBackOnePageOrQuit()V" add extra register to accommodate our new code:
Code:
.method goBackOnePageOrQuit()V
[B][COLOR="Red"].registers 5[/COLOR][/B]
.prologue
it will be after adding new register like this:
Code:
.method goBackOnePageOrQuit()V
[B][COLOR="RoyalBlue"].registers 6[/COLOR][/B]
.prologue
- In the same method, search for "CscFeature_Web_EnablePromptToExit", there will be 3 results, we will be working on the first one. Now add blue lines and delete red line (pay attention to condition value):
Code:
.line 4117
:cond_31
[B][COLOR="RoyalBlue"]invoke-virtual {p0}, Lcom/android/browser/Controller;->getContext()Landroid/content/Context;
move-result-object v1
invoke-virtual {v1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v1
const-string v2, "browser_exit_prompt"
const/4 v4, 0x0
invoke-static {v1, v2, v4}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v1
if-eqz v1, :cond_49[/COLOR] [COLOR="Green"]#<!-- The condition value should be the same as deleted red one bellow[/COLOR][/B]
invoke-static {}, Lcom/sec/android/app/CscFeature;->getInstance()Lcom/sec/android/app/CscFeature;
move-result-object v1
const-string v2, "CscFeature_Web_EnablePromptToExit"
invoke-virtual {v1, v2}, Lcom/sec/android/app/CscFeature;->getEnableStatus(Ljava/lang/String;)Z
move-result v1
[B][COLOR="RoyalBlue"]const/4 v1, 0x1[/COLOR][/B]
[B][COLOR="Red"]if-eqz v1, :cond_49[/COLOR][/B]
- Now in the method ".method public onPrepareOptionsMenu(Landroid/view/Menu;)Z", search for "CscFeature_Web_AddOptionToTerminate" and add blue lines and delete red line (pay attention to condition value):
Code:
.line 2318
:goto_58
[COLOR="RoyalBlue"][B]invoke-virtual {p0}, Lcom/android/browser/Controller;->getContext()Landroid/content/Context;
move-result-object v0
invoke-virtual {v0}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v0
const-string v1, "browser_exit_option"
const/4 v2, 0x0
invoke-static {v0, v1, v2}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v0
if-eqz v0, :cond_71[/COLOR] [COLOR="Green"]#<!-- The condition value should be the same as deleted red one bellow[/COLOR][/B]
invoke-static {}, Lcom/sec/android/app/CscFeature;->getInstance()Lcom/sec/android/app/CscFeature;
move-result-object v0
const-string v1, "CscFeature_Web_AddOptionToTerminate"
invoke-virtual {v0, v1}, Lcom/sec/android/app/CscFeature;->getEnableStatus(Ljava/lang/String;)Z
move-result v0
[B][COLOR="RoyalBlue"]const/4 v0, 0x1[/COLOR][/B]
[B][COLOR="Red"]if-eqz v0, :cond_71[/COLOR][/B]
- In the method ".method public onOptionsItemSelected(Landroid/view/MenuItem;)Z", search for "CscFeature_Web_AddOptionToTerminate" and add this blue line:
Code:
.line 2652
:pswitch_1b4
invoke-static {}, Lcom/sec/android/app/CscFeature;->getInstance()Lcom/sec/android/app/CscFeature;
move-result-object v0
const-string v1, "CscFeature_Web_AddOptionToTerminate"
invoke-virtual {v0, v1}, Lcom/sec/android/app/CscFeature;->getEnableStatus(Ljava/lang/String;)Z
move-result v0
[B][COLOR="RoyalBlue"]const/4 v0, 0x1[/COLOR][/B]
if-eqz v0, :cond_2c
- In the method ".method public updateMenuState" search for "CscFeature_Web_EnableHomepageOption" and add blue lines and delete red line (pay attention to condition value):
Code:
.line 2351
[B][COLOR="RoyalBlue"]invoke-virtual {p0}, Lcom/android/browser/Controller;->getContext()Landroid/content/Context;
move-result-object v4
invoke-virtual {v4}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v4
const-string v7, "browser_home_page"
invoke-static {v4, v7, v2}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v4
if-nez v4, :cond_5a[/COLOR] [COLOR="Green"]#<!-- The condition value should be the same as deleted red one bellow[/COLOR][/B]
invoke-static {}, Lcom/sec/android/app/CscFeature;->getInstance()Lcom/sec/android/app/CscFeature;
move-result-object v4
const-string v7, "CscFeature_Web_EnableHomepageOption"
invoke-virtual {v4, v7}, Lcom/sec/android/app/CscFeature;->getEnableStatus(Ljava/lang/String;)Z
move-result v4
[B][COLOR="RoyalBlue"]const/4 v4, 0x1[/COLOR][/B]
[B][COLOR="Red"]if-nez v4, :cond_5a[/COLOR][/B]
Make sure of v2 is reflecting consta/4 vx, 0x0 flag if you scrolled up at the beginning of the same method which includes this csc feature... see here to understand:
Code:
.method public updateMenuState(Lcom/android/browser/Tab;Landroid/view/Menu;)V
.registers 14
.prologue
const v10, 0x7f0d0155
const v9, 0x7f0d0150
const v8, 0x7f0d0156
const/4 v1, 0x1
[B][COLOR="Red"]const/4 v2, 0x0[/COLOR][/B]
Click to expand...
Click to collapse
- Save changes... Compile.
★ TW Settings Menu ★
- Baksmali SecSettings.apk
- Navigate to classout\com\android\settings folder and open Settings.smali
- In the method ".method private updateHeaderList(Ljava/util/List;)V", search for ""CscFeature_Setting_EnableMenuBlockCallMsg"" and add blue lines and delete red line:
Code:
.line 596
[B][COLOR="RoyalBlue"]invoke-virtual {p0}, Lcom/android/settings/Settings;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v3
const-string v6, "call_message_block"
invoke-static {v3, v6, v2}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v3
if-eqz v3, :cond_majdinj[/COLOR][/B]
invoke-static {}, Lcom/sec/android/app/CscFeature;->getInstance()Lcom/sec/android/app/CscFeature;
move-result-object v3
const-string v6, "CscFeature_Setting_EnableMenuBlockCallMsg"
invoke-virtual {v3, v6}, Lcom/sec/android/app/CscFeature;->getEnableStatus(Ljava/lang/String;)Z
move-result v3
[B][COLOR="RoyalBlue"]const/4 v3, 0x1[/COLOR][/B]
[B][COLOR="Red"]if-nez v3, :cond_23[/COLOR][/B]
.line 598
[B][COLOR="Red"]invoke-interface {p1, v0}, Ljava/util/List;->remove(Ljava/lang/Object;)Z[/COLOR][/B]
goto/16 :goto_23
Make sure of v2 is reflecting consta/4 vx, 0x0 flag if you scroll up at the beginning of the same method which includes this csc feature... see here to understand:
Code:
.method private updateHeaderList(Ljava/util/List;)V
.registers 10
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List",
"<",
"Landroid/preference/PreferenceActivity$Header;",
">;)V"
}
.end annotation
.prologue
const/4 v4, 0x1
[B][COLOR="Red"]const/4 v2, 0x0[/COLOR][/B]
Click to expand...
Click to collapse
- Copy the last 2 lines in the above code (goto_23 could differ according to ROM) and go to the end of method and add defined condition and those 2 lines:
Code:
:cond_2b7
move v0, v1
goto/16 :goto_55
[B][COLOR="RoyalBlue"]:cond_majdinj
invoke-interface {p1, v0}, Ljava/util/List;->remove(Ljava/lang/Object;)Z
goto/16 :goto_23[/COLOR][/B]
.end method
- Save changes.
- Navigate to classout\com\android\settings folder and open SecuritySettings.smali
- In the method ".method private createPreferenceHierarchy()Landroid/preference/PreferenceScreen;", search for "CscFeature_Setting_EnableFactoryResetPasswordWhenNoSIM" and add blue lines and delete red line (pay attention to condition value):
Code:
.line 503
:cond_2f2
[B][COLOR="RoyalBlue"]invoke-virtual {p0}, Lcom/android/settings/SecuritySettings;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v10
const-string v11, "security_data_reset_pass"
invoke-static {v10, v11, v13}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v10
if-eqz v10, :cond_32b[/COLOR] [COLOR="Green"]#<!-- The condition value should be the same as deleted red one bellow[/COLOR][/B]
invoke-static {}, Lcom/sec/android/app/CscFeature;->getInstance()Lcom/sec/android/app/CscFeature;
move-result-object v10
const-string v11, "CscFeature_Setting_EnableFactoryResetPasswordWhenNoSIM"
invoke-virtual {v10, v11}, Lcom/sec/android/app/CscFeature;->getEnableStatus(Ljava/lang/String;)Z
move-result v10
[B][COLOR="RoyalBlue"]const/4 v10, 0x1[/COLOR][/B]
[B][COLOR="Red"]if-eqz v10, :cond_32b[/COLOR][/B]
Make sure of v13 is reflecting consta/4 vx, 0x0 flag if you scrolled up at the beginning of the same method which includes this csc feature... see here to understand:
Code:
.method private createPreferenceHierarchy()Landroid/preference/PreferenceScreen;
.registers 16
.prologue
const v12, 0x7f09001d
const/4 v14, 0x1
[B][COLOR="Red"]const/4 v13, 0x0[/COLOR][/B]
Click to expand...
Click to collapse
- Save changes.
- Navigate to classout\com\android\settings folder and open DeviceInfoSettings.smali
- Search for "CscFeature_Setting_DisableMenuSoftwareUpdate" and add blue lines and delete red line (pay attention to condition value):
Code:
.line 320
[B][COLOR="RoyalBlue"]invoke-virtual/range {p0 .. p0}, Lcom/android/settings/DeviceInfoSettings;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v24
const-string v25, "software_update_menu"
const/16 v26, 0x0
invoke-static/range {v24 .. v26}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v6
if-nez v6, :cond_315 [/COLOR] [COLOR="Green"]#<!-- The condition value should be the same as deleted red one bellow[/COLOR][/B]
invoke-static {}, Lcom/sec/android/app/CscFeature;->getInstance()Lcom/sec/android/app/CscFeature;
move-result-object v24
const-string v25, "CscFeature_Setting_DisableMenuSoftwareUpdate"
invoke-virtual/range {v24 .. v25}, Lcom/sec/android/app/CscFeature;->getEnableStatus(Ljava/lang/String;)Z
move-result v24
[B][COLOR="RoyalBlue"]const/16 v24, 0x1[/COLOR][/B]
[B][COLOR="Red"]const/16 v25, 0x1
move/from16 v0, v24
move/from16 v1, v25
if-ne v0, v1, :cond_315[/COLOR][/B]
- Save changes... compile.
That's all... push all modified files into your device,,
Your new ROM CSC features controller is functioned properly now
Cheers,,
mine
just mine..!!
Yes yes. All yours mate.
nokiamodeln91 said:
Yes yes. All yours mate.
Click to expand...
Click to collapse
Lol,, thanks
Excellent guide mate. Thanks alot!!
Sent from my GT-N7000 using XDA Premium 4 mobile app
You are great bro. Really awesome:laugh:
You wrote that goto different on different Rom. And how to learn how to insert "goto" here?
:cond_2b7
move v0, v1
goto/16 :goto_55
:cond_majdinj
invoke-interface {p1, v0}, Ljava/util/List;->remove(Ljava/lang/ObjectZ
goto/16 :goto_23
.end method
Great guide..
Sent from my GT-S6310 using XDA Premium 4 mobile app
majdinj Phd.
Sent from my GT-N7000 using XDA Premium 4 mobile app
ildar2099 said:
You wrote that goto different on different Rom. And how to learn how to insert "goto" here?
:cond_2b7
move v0, v1
goto/16 :goto_55
:cond_majdinj
invoke-interface {p1, v0}, Ljava/util/List;->remove(Ljava/lang/ObjectZ
goto/16 :goto_23
.end method
Click to expand...
Click to collapse
The code for "CscFeature_Setting_EnableMenuBlockCallMsg" in Settings.smali before editing is looked like this:
Code:
.line 596
invoke-static {}, Lcom/sec/android/app/CscFeature;->getInstance()Lcom/sec/android/app/CscFeature;
move-result-object v3
const-string v6, "CscFeature_Setting_EnableMenuBlockCallMsg"
invoke-virtual {v3, v6}, Lcom/sec/android/app/CscFeature;->getEnableStatus(Ljava/lang/String;)Z
move-result v3
if-nez v3, :cond_23
.line 598
invoke-interface {p1, v0}, Ljava/util/List;->remove(Ljava/lang/Object;)Z
goto/16 :goto_23
Usually the condition values (cond_xxx), goto values (goto_xxx) will differ according to ROM firmware, device or compiler used.
After you made all changes to this code, copy the last 2 lines and paste them at the end of the method. Here the last 2 lines are:
Code:
.line 596
invoke-static {}, Lcom/sec/android/app/CscFeature;->getInstance()Lcom/sec/android/app/CscFeature;
move-result-object v3
const-string v6, "CscFeature_Setting_EnableMenuBlockCallMsg"
invoke-virtual {v3, v6}, Lcom/sec/android/app/CscFeature;->getEnableStatus(Ljava/lang/String;)Z
move-result v3
if-nez v3, :cond_23
.line 598
[B][COLOR="Blue"]invoke-interface {p1, v0}, Ljava/util/List;->remove(Ljava/lang/Object;)Z
goto/16 :goto_[COLOR="Red"]23[/COLOR][/COLOR][/B]
Whatever goto_value you have, just copy it..!!
And to call these 2 lines, add the condition definition line before these 2 lines, so it can be called by your new line "if-eqz v3, :cond_majdinj". So it will be like this at the end:
Code:
:cond_majdinj
invoke-interface {p1, v0}, Ljava/util/List;->remove(Ljava/lang/Object;)Z
goto/16 :goto_[B][COLOR="Red"]23[/COLOR][/B]
.end method
And sorry for late response,, I got things to do here buddy
Cheers,,,
Very Nice! :good:
majdinj said:
The code for "CscFeature_Setting_EnableMenuBlockCallMsg" in Settings.smali before editing is looked like this:
Code:
.line 596
invoke-static {}, Lcom/sec/android/app/CscFeature;->getInstance()Lcom/sec/android/app/CscFeature;
move-result-object v3
const-string v6, "CscFeature_Setting_EnableMenuBlockCallMsg"
invoke-virtual {v3, v6}, Lcom/sec/android/app/CscFeature;->getEnableStatus(Ljava/lang/String;)Z
move-result v3
if-nez v3, :cond_23
.line 598
invoke-interface {p1, v0}, Ljava/util/List;->remove(Ljava/lang/Object;)Z
goto/16 :goto_23
Usually the condition values (cond_xxx), goto values (goto_xxx) will differ according to ROM firmware, device or compiler used.
After you made all changes to this code, copy the last 2 lines and paste them at the end of the method. Here the last 2 lines are:
Code:
.line 596
invoke-static {}, Lcom/sec/android/app/CscFeature;->getInstance()Lcom/sec/android/app/CscFeature;
move-result-object v3
const-string v6, "CscFeature_Setting_EnableMenuBlockCallMsg"
invoke-virtual {v3, v6}, Lcom/sec/android/app/CscFeature;->getEnableStatus(Ljava/lang/String;)Z
move-result v3
if-nez v3, :cond_23
.line 598
[B][COLOR="Blue"]invoke-interface {p1, v0}, Ljava/util/List;->remove(Ljava/lang/Object;)Z
goto/16 :goto_[COLOR="Red"]23[/COLOR][/COLOR][/B]
Whatever goto_value you have, just copy it..!!
And to call these 2 lines, add the condition definition line before these 2 lines, so it can be called by your new line "if-eqz v3, :cond_majdinj". So it will be like this at the end:
Code:
:cond_majdinj
invoke-interface {p1, v0}, Ljava/util/List;->remove(Ljava/lang/Object;)Z
goto/16 :goto_[B][COLOR="Red"]23[/COLOR][/B]
.end method
And sorry for late response,, I got things to do here buddy
Cheers,,,
Click to expand...
Click to collapse
happened, but does not work
How
This mod working on my device, but how to make checked by default?
bamzzz said:
This mod working on my device, but how to make checked by default?
Click to expand...
Click to collapse
android:defaultValue="true"
For example...
before:
Code:
<CheckBoxPreference android:title="@string/twsettings_call_msg_blk" android:key="call_message_block" android:summaryOn="@string/csc_on" android:summaryOff="@string/csc_off" />
after:
Code:
<CheckBoxPreference android:title="@string/twsettings_call_msg_blk" android:key="call_message_block" [COLOR="Blue"]android:defaultValue="true"[/COLOR] android:summaryOn="@string/csc_on" android:summaryOff="@string/csc_off" />
Function does not work "Edit Page". What can you advise?
ildar2099 said:
Function does not work "Edit Page". What can you advise?
Click to expand...
Click to collapse
Have you read the tip???
"Some CSC needs restart to load changes"
ildar2099 said:
happened, but does not work
Click to expand...
Click to collapse
Can you post your smali mate. Please use
and
Code:
flag, so I can help you without need to download the smali :)
Nice one mate. This is awesome. I'll give it a go when I get some time one day. :good:
If, like me, the annoying unclearable notification that storage is low when you go below 500mb really winds you up then this will help. I know how much space I have!!!
Really simple. Decompile services.jar and open com/android/server/DeviceStorageMonitorService.smali.
Find .method private final sendNotification()V
To stop the nag altogether just replace the whole method with...
Code:
.method private final sendNotification()V
return-void
.end method
Compile and youre done!
Or to make it optional add this at the start of the method...
Code:
iget-object v1, p0, Lcom/android/server/DeviceStorageMonitorService;->mContext:Landroid/content/Context;
invoke-virtual {v1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v1
const-string v2, "low_storage"
const/4 v3, 0x1
invoke-static {v1, v2, v3}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v1
if-eqz v1, :cond_new
Then search for return-void in that method and put :cond_new before it.
Add a toggle to secsettings in the nornal way (lots of guides for this) with the key "low_storage".
Thats it. Compile and be nag free!
Enjoy
Sent from my GT-I9305 using Tapatalk
Guides Android 7
I decided after a long thinking about to open a new thread for modding guides for Android 7 because i see that there are much differences to older Android versions. So we keep up to date to make life easier. I hope all agree with me in that and share like me guides here. If you didnt agree with me keep your mind by yourself please and dont make my life harder
Thanks
Framework-res.apk and services.jar
How to add Reboot Recovery Android 7 Style with toggle
Services.jar
Howto remove confirm buttons in Reboot menue for shutoff and reboot
USB Plug/Unplug disable wake up with toggle in RomControl
How to hide (Power Menu) Emergency Button with a Toggle
How to hide (Power Menu) Power Off Button with a Toggle
How to Disable Signature Check
Remove Volume Safe Warning with checkbox
GooglePackageInstaller.apk
Granting permissions dialog - Ok button always available with window (or alert) overlays
SamsungCamera6.apk
Another way of using Camera Flash on low battery
SystemUI.apk
Guide - SysScope - Status = Official
SystemUI.apk
How to enable Lockscreen rotation with toggle in RomControl V2
How to unlock after reboot with fingerprint without pin or pattern
Network traffic indicator in status bar
GearUtils
How to open app if click on statusbar clock
Adaption for 6thGear Data Usage Preferences on the fly without observer and without CSC changes
Adaption of Gear device info in notification panel
Adaption of 6htGear Carrier label preferences - as ADDITION to 6thGear device info mod
How to Make Data Usage Center From Right in Notification Panelwithout RomControl
How to add virtual lock, recent and home button to statusbar with RomControl
Add Battery Bar to ROM
How to make a option to choose between Stock and 3Minit battery
Volume safe warning to be permanently disabled (at bottom of post)
SecSettings2.apk
Activate duration keys lighting in the setting
How to build 0.25x anmimation scale in developer options
Different mods
Nougat compatible -=V6=- 1060 FONTS
Whitepages /identify unsaved numbers
reserved1
How to add Reboot Recovery to power menu with toggle
Credits goes to @sagitt67 and @daxgirl .
Credits for toggle goes to @tdunham
Now after some fc and logcats of old guides i finished sucessfull the mod and share what i have done
We work in framework-res.apk and services.jar
Framework-res.apk
Download framework.zip
Paste files in same folders of decompiles freamework-res.apk
now open res/values/arrays.xml
find <string-array name="config_globalActionsList"> and add blue
Code:
<string-array name="config_globalActionsList">
<item>power</item>
<item>datamode</item>
<item>airplane</item>
<item>restart</item>
<item>lockdown</item>
<item>bugreport</item>
<item>users</item>
[COLOR="Blue"]<item>rebootrecovery</item>[/COLOR]
<item>emergencymode</item>
<item>subscreen</item>
<item>screenrec</item>
</string-array>
now go to res/values/strings.xml and add blue
Code:
<string name="charging_connected_via_usb">Charging connected device via USB...</string>
<string name="config_tspstate_threshold">10,32,768,10,60</string>
[COLOR="Blue"]<string name="tw_ic_do_rebootrecovery">Reboot Recovery</string>[/COLOR]
</resources>
done with framework-res.apk
recompile and push to phone
Services.jar
download services.zip and paste files in same folders of decompiles services.jar
open smali/com/android/server/policy/GlobalActions.smali
add blue line in # instance fields
Code:
.field mEmergencyStringId:I
[COLOR="Blue"].field private mRebootRecovery:Lcom/android/server/policy/GlobalActions$SinglePressAction;[/COLOR]
.field private mGlobalActionsFrameLayout:Landroid/app/GlobalActionsFrameLayout
find .method private createDialog()Lcom/android/server/policy/GlobalActions$GlobalActionsDialog;
add blue
Code:
if-eqz v4, :cond_8
const v4, 0x10809f4
:goto_4
const v6, 0x10406e2
move-object/from16 v0, p0
invoke-direct {v5, v0, v4, v6}, Lcom/android/server/policy/GlobalActions$20;-><init>(Lcom/android/server/policy/GlobalActions;II)V
move-object/from16 v0, p0
iput-object v5, v0, Lcom/android/server/policy/GlobalActions;->mRestart:Lcom/android/server/policy/GlobalActions$SinglePressAction;
[COLOR="blue"]new-instance v4, Lcom/android/server/policy/GlobalActions$47;
move-object/from16 v0, p0
iget-object v0, v0, Lcom/android/server/policy/GlobalActions;->mContext:Landroid/content/Context;
invoke-virtual {v0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
move-result-object v0
const-string v1, "tw_ic_do_rebootrecovery"
const-string v2, "drawable"
const-string v3, "android"
invoke-virtual {v0, v1, v2, v3}, Landroid/content/res/Resources;->getIdentifier(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
move-result v5
move-object/from16 v0, p0
iget-object v0, v0, Lcom/android/server/policy/GlobalActions;->mContext:Landroid/content/Context;
invoke-virtual {v0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
move-result-object v0
const-string v1, "tw_ic_do_rebootrecovery"
const-string v2, "string"
const-string v3, "android"
invoke-virtual {v0, v1, v2, v3}, Landroid/content/res/Resources;->getIdentifier(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
move-result v6
move-object/from16 v0, p0
invoke-direct {v4, v0, v5, v6}, Lcom/android/server/policy/GlobalActions$47;-><init>(Lcom/android/server/policy/GlobalActions;II)V
move-object/from16 v0, p0
iput-object v4, v0, Lcom/android/server/policy/GlobalActions;->mRebootRecovery:Lcom/android/server/policy/GlobalActions$SinglePressAction;[/COLOR]
invoke-static {}, Lcom/samsung/android/feature/SemCscFeature;->getInstance()Lcom/samsung/android/feature/SemCscFeature;
move-result-object v4
const-string/jumbo v5, "CscFeature_Common_ConfigBikeMode"
Now next part is tricky, add lines in blue and changes in green
Code:
const/16 v6, 0x80
const/4 v7, 0x1
move-object/from16 v0, p0
invoke-direct {v0, v6, v4, v5, v7}, Lcom/android/server/policy/GlobalActions;->addDialogItemsIfEnabled(ILcom/android/server/policy/GlobalActions$Action;Ljava/util/ArrayList;Z)Z
new-instance v4, Lcom/android/server/policy/GlobalActions$BugReportAction;
move-object/from16 v0, p0
invoke-direct {v4, v0}, Lcom/android/server/policy/GlobalActions$BugReportAction;-><init>(Lcom/android/server/policy/GlobalActions;)V
move-object/from16 v0, p0
iget-object v5, v0, Lcom/android/server/policy/GlobalActions;->mItems:Ljava/util/ArrayList;
[COLOR="Blue"]const/16 v6, 0x100
move-object/from16 v0, p0
iget-object v4, v0, Lcom/android/server/policy/GlobalActions;->mRebootRecovery:Lcom/android/server/policy/GlobalActions$SinglePressAction;
move-object/from16 v0, p0
iget-object v5, v0, Lcom/android/server/policy/GlobalActions;->mItems:Ljava/util/ArrayList;
const/4 v7, 0x1
move-object/from16 v0, p0
invoke-direct {v0, v6, v4, v5, v7}, Lcom/android/server/policy/GlobalActions;->addDialogItemsIfEnabled(ILcom/android/server/policy/GlobalActions$Action;Ljava/util/ArrayList;Z)Z [/COLOR]
const/16 v6, 0x200 [COLOR="Magenta"]#before was 0x100[/COLOR]
const/4 v7, 0x1
move-object/from16 v0, p0
invoke-direct {v0, v6, v4, v5, v7}, Lcom/android/server/policy/GlobalActions;->addDialogItemsIfEnabled(ILcom/android/server/policy/GlobalActions$Action;Ljava/util/ArrayList;Z)Z
now search for const-string/jumbo v4, "silent" and add blue line above it and delete red ones
green parts must match yellow part
Code:
const-string/jumbo v4, "emergencymode"
invoke-virtual {v4, v11}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_15
move-object/from16 v0, p0
iget-object v4, v0, Lcom/android/server/policy/GlobalActions;->mItems:Ljava/util/ArrayList;
move-object/from16 v0, p0
iget-object v5, v0, Lcom/android/server/policy/GlobalActions;->mEmergency:Lcom/android/server/policy/GlobalActions$ToggleAction;
invoke-virtual {v4, v5}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
goto/16 :[COLOR="Yellow"]goto_7[/COLOR] #look that green part match this
:cond_15
[COLOR="Blue"]const-string/jumbo v4, "rebootrecovery"
invoke-virtual {v4, v11}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_asc1
move-object/from16 v0, p0
iget-object v4, v0, Lcom/android/server/policy/GlobalActions;->mItems:Ljava/util/ArrayList;
move-object/from16 v0, p0
iget-object v5, v0, Lcom/android/server/policy/GlobalActions;->mRebootRecovery:Lcom/android/server/policy/GlobalActions$SinglePressAction;
invoke-virtual {v4, v5}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
goto/16 :[COLOR="Green"]goto_7 [/COLOR]
:cond_asc1[/COLOR]
const-string/jumbo v4, "silent"
next part is missing in Android 7 services.jar so we need to readd it for mod
find .method private addCustomDialogItems(Landroid/graphics/drawable/BitmapDrawable;Ljava/lang/String;Landroid/content/Intent;ILjava/util/ArrayListZ
add this above method
Code:
.method static synthetic access$500(Lcom/android/server/policy/GlobalActions;)Landroid/content/Context;
.locals 1
iget-object v0, p0, Lcom/android/server/policy/GlobalActions;->mContext:Landroid/content/Context;
return-object v0
.end method
thats it, recompile and push to phone
Note: For me one time i get after reboot a loop of phone restarts, only one time happens. If it happen i solved it with wipe dalvik-cache and cache
RomControl V2
Code:
<com.wubydax.romcontrol.v2.prefs.MySwitchPreference android:title="Reboot Recovery Button" android:key="reboot_recovery" android:defaultValue="false" android:summaryOn="Reboot Recovery will be shown" android:summaryOff="Currently removed" />
Interesting ,,
Howto remove confirm buttons in Reboot menue for shutoff and reboot
decompile
open services.jar/com/android/server/policy/GlobalActions
goto method
Code:
.method public constructor <init>(Landroid/content/Context;Landroid/view/WindowManagerPolicy$WindowManagerFuncs;)V
scroll down and find and delete this lines. ID´s maybe different
Code:
const v1, 0x1080a25
iput v1, p0, Lcom/android/server/policy/GlobalActions;->mPowerOffIconResId:I
const v1, 0x1080a26
iput v1, p0, Lcom/android/server/policy/GlobalActions;->mConfirmPowerOffIconResId:I
const v1, 0x1080a27
iput v1, p0, Lcom/android/server/policy/GlobalActions;->mRestartIconResId:I
const v1, 0x1080a28
iput v1, p0, Lcom/android/server/policy/GlobalActions;->mConfirmRestartIconResId:I
USB Plug/Unplug disable wake up with toggle in RomControl
Decompile Services.jar
Go to smali/com/android/server/power/PowerManagerService.smali
find and add blue and remoce red
Code:
invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J
move-result-wide v2
invoke-direct {p0, v13, v11, v8}, Lcom/android/server/power/PowerManagerService;->shouldWakeUpWhenPluggedOrUnpluggedLocked(ZIZ)Z
move-result v1
[COLOR="Blue"]iget-object v5, p0, Lcom/android/server/power/PowerManagerService;->mContext:Landroid/content/Context;
invoke-virtual {v5}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v5
const v4, 0x1
const-string/jumbo v6, "usb_plugged"
invoke-static {v5, v6, v4}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v4
if-eqz v4, :cond_4[/COLOR] [COLOR="Magenta"]# this cond must match :cond after that line[/COLOR]
if-eqz v1, :cond_4
if-eqz v12, :cond_4
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
iget-object v4, p0, Lcom/android/server/power/PowerManagerService;->mScreenOnReason:Ljava/lang/String;
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string/jumbo v4, " powered change"
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
iput-object v1, p0, Lcom/android/server/power/PowerManagerService;->mScreenOnReason:Ljava/lang/String;
[COLOR="red"] const/16 v1, 0xb
iput v1, p0, Lcom/android/server/power/PowerManagerService;->mLastWakeUpReason:I[/COLOR]
const-string/jumbo v4, "android.server.power:POWER"
RomControl
Code:
<com.wubydax.romcontrol.v2.prefs.MySwitchPreference android:title="USB plug in/out wakeup" android:icon="@drawable/usb" android:key="usb_plugged" android:defaultValue="true" android:summaryOn="On" android:summaryOff="Off" />
Thx for helping for this mod to great @thereassaad
How to hide (Power Menu) Emergency Button with a Toggle
First of all thx @tdunham for original guide here
Services.jar
open smali/com/android/server/policy/GlobalActions$16.smali
Search for followed text to be sure you have right smali. If you not find search in other GlobalAction$.......... smalis for that key
Code:
"EmergencyMode"
Replace method with below
Code:
.method public showConditional()Z
.locals 4
const/4 v0, 0x0
const/4 v1, 0x1
iget-object v2, p0, Lcom/android/server/policy/GlobalActions$16;->this$0:Lcom/android/server/policy/GlobalActions; [COLOR="Magenta"]#ThisGlobalActions$16 must match your smali[/COLOR]
# getter for: Lcom/android/server/policy/GlobalActions;->mContext:Landroid/content/Context;
invoke-static {v2}, Lcom/android/server/policy/GlobalActions;->access$500(Lcom/android/server/policy/GlobalActions;)Landroid/content/Context;
move-result-object v2
invoke-virtual {v2}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v2
const-string v3, "power_emergency"
invoke-static {v2, v3, v1}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
move-result v2
if-ne v2, v0, :cond_0
:goto_0
return v0
:cond_0
move v0, v1
goto :goto_0
.end method
Now we go to main smali
open smali/com/android/server/policy/GlobalActions.smali
search for this method. On Android 7 it never excist so we have to add it. Maybe its there from earlier mods so only check if there or not and add if not above
method: .method private addCustomDialogItems(Landroid/graphics/drawable/BitmapDrawable;Ljava/lang/String;Landroid/content/Intent;ILjava/util/ArrayListZ
Code:
.method static synthetic access$500(Lcom/android/server/policy/GlobalActions;)Landroid/content/Context;
.locals 1
iget-object v0, p0, Lcom/android/server/policy/GlobalActions;->mContext:Landroid/content/Context;
return-object v0
.end method
RomControl
Code:
<com.wubydax.romcontrol.v2.prefs.MySwitchPreference android:title="Emergency Mode Button" android:key="power_emergency" android:defaultValue="true" android:summaryOn="Emergency mode will be shown" android:summaryOff="Currently removed" />
Thx again to get it to work on Android 6.9.1 @tdunham
How to unlock after reboot with fingerprint without pin or pattern
decompile SystemUI.apk
Go to smali/com/android/keyguard
open Keyguardupdatemonitor.smali
add blue
Code:
.method private isFingerprintDisabled(I)Z
..................
:goto_0
[COLOR="Blue"]const/4 v1, 0x0 [/COLOR]
return v1
:cond_0
invoke-virtual {p0}, Lcom/android/keyguard/KeyguardUpdateMonitor;->isSimPinSecure()Z
move-result v1
goto :goto_0
.end method
Code:
.method public isUnlockCompleted()Z
........................................
move-result v0
[COLOR="blue"]const/4 v0, 0x1 [/COLOR]
return v0
.end method
Code:
.method public isUnlockWithFingerprintPossible(I)Z
............................................
:cond_3
[COLOR="blue"]const/4 v0, 0x1[/COLOR]
return v1
.end method
Open KeyguardUpdateMonitor$StrongAuthTracker.smali
add blue
Code:
.method public isUnlockingWithFingerprintAllowed()Z
.locals 2
.prologue
const/4 v0, 0x0
.line 936
iget-object v1, p0, Lcom/android/keyguard/KeyguardUpdateMonitor;->mStrongAuthTracker:Lcom/android/keyguard/KeyguardUpdateMonitor$StrongAuthTracker;
invoke-virtual {v1}, Lcom/android/keyguard/KeyguardUpdateMonitor$StrongAuthTracker;->isUnlockingWithFingerprintAllowed()Z
move-result v1
[COLOR="Blue"]const/4 v1, 0x1 [/COLOR]
if-eqz v1, :cond_0
.line 937
sget v1, Lcom/android/keyguard/KeyguardUpdateMonitor;->sCurrentUser:I
invoke-virtual {p0, v1}, Lcom/android/keyguard/KeyguardUpdateMonitor;->hasFingerprintUnlockTimedOut(I)Z
move-result v1
if-eqz v1, :cond_1
.line 936
:cond_0
:goto_0
return v0
.line 937
:cond_1
const/4 v0, 0x1
goto :goto_0
.end method
recompile
Thx @sanoc69
How to Disable Signature Check
Decompil Services.jar
Go into smali\com\android\server\pm\PackageManagerService. smali
Search for :
Code:
.method static compareSignatures([Landroid/content/pm/Signature;[Landroid/content/pm/Signature;)I
Replace the entire .method with this one:
Code:
.method static compareSignatures([Landroid/content/pm/Signature;[Landroid/content/pm/Signature;)I
.locals 7
const/4 v0, 0x0
return v0
.end method
Recompil Services.jar
Done
Now you can install any application with different signature
Thanks to @one_love_420
To move the network traffic indicator to the left of the status bar, follow the guide (amazing) by @daxgirl but in the 6th step, add the
Code:
<com.android.wubydax.NetworkTraffic android:layout_width="wrap_content" android:layout_height="fill_parent" />
after:
Code:
<LinearLayout android:orientation="horizontal" android:id="@id/status_bar_contents" android:layout_width="fill_parent" android:layout_height="fill_parent" android:paddingStart="@dimen/status_bar_padding_start" android:paddingEnd="@dimen/status_bar_padding_end">
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"
}
Thanks to @daxgirl for pointing it out
@asc1977
How can we deodex nougat firmware? SVADeodexer doesn't work anymore for nougat
intxeon said:
@asc1977
How can we deodex nougat firmware? SVADeodexer doesn't work anymore for nougat
Click to expand...
Click to collapse
Use superr kitchen
Use smali/baksmali method
If asked ktichen to delete meta-inf folders say no
After all copy arm and arm64 folders from odex framework to deodwx framework. Thats all and it boot. I think newest assayad tool do ot byself
asc1977 said:
Use superr kitchen
Use smali/baksmali method
If asked ktichen to delete meta-inf folders say no
After all copy arm and arm64 folders from odex framework to deodwx framework. Thats all and it boot. I think newest assayad tool do ot byself
Click to expand...
Click to collapse
Thanks
I searched assayad tool on this forum but I can't find it
intxeon said:
Thanks
I searched assayad tool on this forum but I can't find it
Click to expand...
Click to collapse
Are u sure ..
http://forum.xda-developers.com/showthread.php?t=3410545
asc1977 said:
Use superr kitchen
Use smali/baksmali method
If asked ktichen to delete meta-inf folders say no
After all copy arm and arm64 folders from odex framework to deodwx framework. Thats all and it boot. I think newest assayad tool do ot byself
Click to expand...
Click to collapse
yes..that kitchen it´s awesome..
a thousand thank´s for sharing your mods mate.. really....
im new on this mods stuff.. and i was looking for the advance reboot menu on nougat...
best regards
Yes, Assayyed Kitchen can now deodex Nougat Beta with last version. You dont need to add or remove anything
gvmiguez said:
Yes, Assayyed Kitchen can now deodex Nougat Beta with last version. You dont need to add or remove anything
Click to expand...
Click to collapse
you mean not need to be added arms folder to framework folder ?
No, the kitchen keeps both folders on framework when deodex finish
Adaption for 6thGear Data Usage Preferences on the fly without observer and without CSC changes
First of all thy @daxgirl for her great mod here and press the thanks button
For Nougat we need some adaptions. To get it to work i needed a additional step which need GearUtils. Also on/off is not on the fly anymore but all other settings. So follow guide but replace followed steps:
1. navigate to here because feature.smali now SystemUIRuine.smali:
Code:
smali/com/android/systemui/SystemUIRune.smali
2. search for that boolean because is also changed:
Code:
sput-boolean v0, Lcom/android/systemui/SystemUIRune;->SUPPORT_QUICKPANEL_DATAUSAGE:Z
3. Didnt use daxgirls step 3.
Do the followed: remove red and add blue (GearUtils must be a content of your SystemUi.apk, if not you get FC)
and increase locals from 6 to 8
Code:
[COLOR="Red"] invoke-static {}, Lcom/sec/android/app/CscFeature;->getInstance()Lcom/sec/android/app/CscFeature;
move-result-object v0
const-string v1, "CscFeature_SystemUI_SupportDataUsageViewOnQuickPanel"
invoke-virtual {v0, v1, v2}, Lcom/sec/android/app/CscFeature;->getEnableStatus(Ljava/lang/String;Z)Z
move-result v0
sput-boolean v0, Lcom/android/systemui/SystemUIRune;->SUPPORT_QUICKPANEL_DATAUSAGE:Z[/COLOR]
[COLOR="Blue"] const/4 v6, 0x1
const-string v7, "asc_data_usage_visibility"
invoke-static {v7, v6}, Lcom/android/wubydax/GearUtils;->getDbIntForKey(Ljava/lang/String;I)I
move-result v7
if-nez v7, :cond_asc2
const/4 v0, 0x0
sput-boolean v0, Lcom/android/systemui/SystemUIRune;->SUPPORT_QUICKPANEL_DATAUSAGE:Z
goto :goto_asc1
:cond_asc2
const/4 v0, 0x1
sput-boolean v0, Lcom/android/systemui/SystemUIRune;->SUPPORT_QUICKPANEL_DATAUSAGE:Z
:goto_asc1[/COLOR]
4. Goto smali/com/android/systemui/statusbar/phone/PhoneStatusBar.smali
you see its also never on same place like guided before
find
Code:
sget-boolean v0, Lcom/android/systemui/SystemUIRune;->SUPPORT_QUICKPANEL_DATAUSAGE:Z
replace with
Code:
invoke-virtual {p0}, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->isDataUsageEnabled()Z
move-result v0
5. add above that method the new method from step7 of daxgirls guide but replace the pathes to new one which now
Lcom/android/systemui/statusbar/phone/PhoneStatusBar and never Lcom/android/systemui/statusbar/phone/NotificationPanelView because the smali changed
6.add at bottom of smali/com/android/systemui/qs/DataUsageView.smali the new method of step8 of daxgirls guide but also you have to change the path inside method to new one which is Lcom/android/systemui/qs/DataUsageView and not Lcom/android/systemui/statusbar/phone/DataUsageView
7.Is same like step 9 of daxgirls guide
RomControl
Same like on daxgirls guide
@asc1977,
Hi bro,
Many Thanks for this great thread !