TOUCHWIZ UNIFIED MODS THREAD - GUIDES & LINKS
Always a work in progress. Refer here for guides and links to various mods to help improve the Android experience.
Please feel free to contribute as well.
This thread requires basic knowledge of compiling and decompiling apk and jar files so they can be edited.
___________________________________________________
[Guide How-to] Remove Lockscreen Carrier
This removes the lockscreen carrier text.
___________________________________________________
[Guide How-to] USB Plug/Unplugged Disable Wake + Android L
This modification will prevent the phone from waking for both (or either) USB/Power unplugged or plugged in states.
__________________________________________________
[Guide How-to] Remove Safe Volume Warning
This removes the safe volume warning that pops up when you turn up the volume beyond a certain point.
____________________________________________________
[Guide How-to] Replace Recents with Menu & LongPress Home for Recents
This guide is for the Galaxy S5 and should work on all variants.
__________________________________________________
[Guide How-To] Native Call Recording KK 4.4.2
This enables call recording natively.
____________________________________________________
[Guide/How-To] Remove Location Consent Popup
Remove that annoying Location Consent popup.
____________________________________________________
[Guide] [How-to] Disable Battery Cover & Charging Cover Toasts
This disables both the battery cover and the charging/usb cover toast messages.
____________________________________________________
[Guide How-to] Bluetooth Scan Dialog Removal
This will remove the scan dialog popup when Bluetooth is enabled.
____________________________________________________
[Guide How-to] Maximum StatusBar Brightness 4.4.2
I noticed that Samsung always make the statusbar notification areas a bit dim.
____________________________________________________
[Guide How-to] Remove Airplane Quicksetting Popup + ANDROID L
Remove the permission popup for Airplane mode when selected from Quicksettings.
____________________________________________________
[Guide How-To] ENABLE CALL & MSG BLOCKING
This enables call and msg blocking natively.
Credits to @majdinj for his thread HERE
____________________________________________________
[Guide How-To] ENABLE WiFi & USB Tethering (HOTSPOT)
This will enable WiFi Hotspot and USB tethering.
__________________________________________________
[Guide How-To] ENABLE DEVELOPER OPTIONS
This will enable Developer Options settings item without having to do the build multiple tap.
Credits @rompnit for this one as well.
Android 5.1.1 guide is --> HERE
__________________________________________________
[Guide How-To] CHANGE DEFAULT ANIMATION SCALES
This smali edit will change the default animation scales for increased GUI speed.
Credits @bajasur for the original guide HERE
__________________________________________________
[Guide How-To] REMOVE IME KEYBOARD SWITCHER NOTIFICATION
This is a very simple edit but I couldn't find a guide anywhere to link to so here it is.
__________________________________________________
[Guide How-To] DISABLE HOME KEY WAKE
This will prevent the Home Key from waking the phone.
Credits @rompnit for this one too.
__________________________________________________
[Guide How-To] REMOVE ROAMING NOTIFICATION
This will remove the ongoing Roaming notification.
__________________________________________________
[Guide How-To] DISABLE SCROLLING CACHE
This guide will show you how to disable scrolling cache.
__________________________________________________
[Guide How-To] DISABLE MSL & ENABLE PRL WRITE IN ##DATA# MENU
This guide disables the need to input MSL and also enables flashing PRL's right from the ##DATA# menu.
Credit goes to @digiblur for this incredible mod.
(And permission to post a guide for it )
__________________________________________________
[Guide How-To] CREATE AN XPOSED PROOF FEATURES.XML FOR CSC TWEAKS
Lets face it, xposed modules always seem to overwrite my favorite CSC tweaks.
This guide will show you how to use your own custom features.xml that won't be overwritten.
__________________________________________________
[Guide How-To] ENABLE LOCKSCREEN ROTATION (with a toggle in mind)
I know there is a bools edit for this but this is the smali way so you can add a toggle.
__________________________________________________
[Guide How-To] Remove Knox info in About screen
Knox is removed, now remove the info from the about screen too.
Removing Knox for Android 6.0.x -->> http://xdaforums.com/showpost.php?p=66741387&postcount=6078
Note:
Many many hours go into developing the mods and creating guides for them.
It is also considered good form to hit the :good:Thanks button rather than saying it in open forum. (it just creates unnecessary clutter)
Always a work in progress. Refer here for guides and links to various mods to help improve the Android experience.
Please feel free to contribute as well.
This thread requires basic knowledge of compiling and decompiling apk and jar files so they can be edited.
___________________________________________________
[Guide How-to] Remove Lockscreen Carrier
This removes the lockscreen carrier text.
Keyguard.apk smali edit:
smali/com/android/keyguard/CarrierText.smali:
Change if-nez to if-eqz in the indicated edit in BLUE:
smali/com/android/keyguard/CarrierText.smali:
Change if-nez to if-eqz in the indicated edit in BLUE:
Code:
.method private static concatenate(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
.locals 5
const/4 v2, 0x1
const/4 v3, 0x0
invoke-static {p0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v4
[COLOR="Blue"]if-eqz [/COLOR]v4, :cond_1
move v0, v2
[Guide How-to] USB Plug/Unplugged Disable Wake + Android L
This modification will prevent the phone from waking for both (or either) USB/Power unplugged or plugged in states.
Services.jar edits:
smali/com/android/server/power/PowerManagerService.smali:
All edits are in .method private updateIsPoweredLocked(I)V
Expand registers from 12 to 14 (your code may be different dependant on decompiling method)
Delete the line in RED to disable wake when plugged in.
Next two edits to disable wake when unplugged.
A few lines lower, add lines in BLUE.
Android L Edits
Services.jar edits:
Add new code in BLUE
Note: This edit will disable BOTH plugged and unplugged.
They are not separate edits as previous builds.
smali/com/android/server/power/PowerManagerService.smali:
smali/com/android/server/power/PowerManagerService.smali:
All edits are in .method private updateIsPoweredLocked(I)V
Expand registers from 12 to 14 (your code may be different dependant on decompiling method)
Code:
.method private updateIsPoweredLocked(I)V
[COLOR="Blue"].locals 14
[/COLOR]
Code:
const-string v4, "charger plug"
invoke-virtual {v8, v0, v4}, Landroid/os/PowerManager;->newWakeLock(ILjava/lang/String;)Landroid/os/PowerManager$WakeLock;
move-result-object v7
invoke-virtual {v7, v3}, Landroid/os/PowerManager$WakeLock;->setReferenceCounted(Z)V
const-wide/16 v4, 0x2710
[COLOR="Red"]invoke-virtual {v7, v4, v5}, Landroid/os/PowerManager$WakeLock;->acquire(J)V
[/COLOR]
:cond_1
Next two edits to disable wake when unplugged.
A few lines lower, add lines in BLUE.
Code:
iput-boolean v0, p0, Lcom/android/server/power/PowerManagerService;->mPowerIsChanged:Z
:cond_2
invoke-direct {p0, v10, v9, v6}, Lcom/android/server/power/PowerManagerService;->shouldWakeUpWhenPluggedOrUnpluggedLocked(ZIZ)Z
move-result v0
[COLOR="Blue"]goto :goto_td
[/COLOR] if-eqz v0, :cond_3
Code:
iput-object v0, p0, Lcom/android/server/power/PowerManagerService;->mScreenOnReason:Ljava/lang/String;
invoke-direct {p0, v1, v2}, Lcom/android/server/power/PowerManagerService;->wakeUpNoUpdateLocked(J)Z
[COLOR="Blue"]:goto_td[/COLOR]
:cond_3
const/16 v5, 0x3e8
Services.jar edits:
Add new code in BLUE
Note: This edit will disable BOTH plugged and unplugged.
They are not separate edits as previous builds.
smali/com/android/server/power/PowerManagerService.smali:
Code:
.method private updateIsPoweredLocked(I)V
.
.
.
invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J
move-result-wide v2
invoke-direct {p0, v9, v8, v0}, Lcom/android/server/power/PowerManagerService;->shouldWakeUpWhenPluggedOrUnpluggedLocked(ZIZ)Z
move-result v1
[COLOR="Blue"]const v1, 0x0
[/COLOR]
if-eqz v1, :cond_1
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
[Guide How-to] Remove Safe Volume Warning
This removes the safe volume warning that pops up when you turn up the volume beyond a certain point.
This mod requires modifying framework.jar
Edit smali/android/media/AudioService.smali:
Changes are in .method private checkSafeMediaVolume(III)Z
, new lines are in BLUE:
Edit smali/android/media/AudioService.smali:
Changes are in .method private checkSafeMediaVolume(III)Z
, new lines are in BLUE:
Code:
:cond_1
iget-object v6, p0, Landroid/media/AudioService;->mSafeMediaVolumeState:Ljava/lang/Integer;
invoke-virtual {v6}, Ljava/lang/Integer;->intValue()I
move-result v6
[COLOR="Blue"]goto :goto_td
[/COLOR]
if-ne v6, v7, :cond_4
iget-object v6, p0, Landroid/media/AudioService;->mStreamVolumeAlias:[I
Code:
goto :goto_1
[COLOR="Blue"]:goto_td[/COLOR]
:cond_4
monitor-exit v5
:try_end_3
.catchall {:try_start_3 .. :try_end_3} :catchall_0
goto :goto_0
.end method
[Guide How-to] Replace Recents with Menu & LongPress Home for Recents
This guide is for the Galaxy S5 and should work on all variants.
Keylayout edits:
system/usr/keylayout/Generic.kl
Change key 254 from APP_SWITCH to MENU
key 254 MENU
system/usr/keylayout/gpio-keys.kl
Do the same to key 254
key 254 MENU
Now Recent Apps capacitive key is Menu (single-press) and Search (long-press).
However, we have now lost access to recent apps via a hardware key.
How-to map Recent Apps to Long-press Home
android.policy.jar edits
smali/com/android/internal/policy/impl/PhoneWindowManager.smali
Search for and delete the line in RED.
system/usr/keylayout/Generic.kl
Change key 254 from APP_SWITCH to MENU
key 254 MENU
system/usr/keylayout/gpio-keys.kl
Do the same to key 254
key 254 MENU
Now Recent Apps capacitive key is Menu (single-press) and Search (long-press).
However, we have now lost access to recent apps via a hardware key.
How-to map Recent Apps to Long-press Home
android.policy.jar edits
smali/com/android/internal/policy/impl/PhoneWindowManager.smali
Search for and delete the line in RED.
Code:
iget v2, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mLongPressOnHomeBehavior:I
if-eqz v2, :cond_0
iput-boolean v5, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mHomeConsumed:Z
const/4 v2, 0x0
invoke-virtual {p0, v2, v4, v4}, Lcom/android/internal/policy/impl/PhoneWindowManager;->performHapticFeedbackLw(Landroid/view/WindowManagerPolicy$WindowState;IZ)Z
iget v2, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mLongPressOnHomeBehavior:I
[COLOR="Red"] if-ne v2, v5, :cond_6
[/COLOR]
invoke-direct {p0}, Lcom/android/internal/policy/impl/PhoneWindowManager;->toggleRecentApps()V
[Guide How-To] Native Call Recording KK 4.4.2
This enables call recording natively.
Simple CSC edit.
system/csc/feature.xml edit
Add new section and must be inserted BEFORE
</FeatureSet>
</SamsungMobileFeature>
(** please note that feature.xml can be overwritten so this may not stick if using a third party software like Xposed)
Installation and Other Notes:
- recordings are saved in internal SD/Sounds
system/csc/feature.xml edit
Add new section and must be inserted BEFORE
</FeatureSet>
</SamsungMobileFeature>
(** please note that feature.xml can be overwritten so this may not stick if using a third party software like Xposed)
Code:
<!-- Call -->
<CscFeature_VoiceCall_ConfigRecording>RecordingAllowed</CscFeature_VoiceCall_ConfigRecording>
Installation and Other Notes:
- recordings are saved in internal SD/Sounds
[Guide/How-To] Remove Location Consent Popup
Remove that annoying Location Consent popup.
We are editing the file GmsCore.apk. The apk is very difficult to de/recompile so we are just editing classes.dex file separately. Included is the smali/baksmali compiling tool. Just extract the classes.dex from GmsCore.apk and place it in the same folder as the extracted files from the tool and select decompile.bat.
This will create an output folder called classout. Once the edits are complete, you will select compile.bat and (if there are no errors) a newly created file new-classes.dex will be created. Rename this to classes.dex and insert it back into GmsCore.apk.
Edit classout/com/google/android/location/network/NetworkLocationService.smali
.method static a(Landroid/content/ContextV, change if-nez to if-eqz as indicated in BLUE:
Edit classout/com/google/android/location/network/ConfirmAlertActivity.smali
Make the change indicated in BLUE:
Make the change indicated in BLUE:
This will create an output folder called classout. Once the edits are complete, you will select compile.bat and (if there are no errors) a newly created file new-classes.dex will be created. Rename this to classes.dex and insert it back into GmsCore.apk.
Edit classout/com/google/android/location/network/NetworkLocationService.smali
.method static a(Landroid/content/ContextV, change if-nez to if-eqz as indicated in BLUE:
Code:
move-result-object v0
.line 106
[COLOR="Blue"]if-eqz [/COLOR]v0, :cond_2c
.line 107
const-string v0, "GmsNetworkLocationService"
const-string v1, "applySettings(): provider not available"
Edit classout/com/google/android/location/network/ConfirmAlertActivity.smali
Make the change indicated in BLUE:
Code:
.method public constructor <init>()V
.registers 2
.prologue
.line 44
invoke-direct {p0}, Landroid/app/Activity;-><init>()V
.line 59
[COLOR="Blue"]const/4 v0, 0x1
[/COLOR]
iput-boolean v0, p0, Lcom/google/android/location/network/ConfirmAlertActivity;->c:Z
.line 60
const/4 v0, 0x0
iput-object v0, p0, Lcom/google/android/location/network/ConfirmAlertActivity;->d:Landroid/app/Dialog;
.line 163
return-void
.end method
Make the change indicated in BLUE:
Code:
.method public onClick(Landroid/content/DialogInterface;I)V
.registers 6
.prologue
[COLOR="Blue"] const/4 v1, 0x1
[/COLOR]
.line 140
const/4 v0, -0x1
if-ne p2, v0, :cond_2a
const/4 v0, 0x1
:goto_5
iput-boolean v0, p0, Lcom/google/android/location/network/ConfirmAlertActivity;->c:Z
[Guide] [How-to] Disable Battery Cover & Charging Cover Toasts
This disables both the battery cover and the charging/usb cover toast messages.
Decompile system/app/PopupuiReceiver.apk.
Edit res/values/bools.xml.
Change true value to false in the line below:
Notes:
This should also resolve the battery cover toast from appearing for a split second after a reboot and the screen is unlocked.
. .
Edit res/values/bools.xml.
Change true value to false in the line below:
Code:
<bool name="display_battery_cover_popup">[COLOR="Blue"]false[/COLOR]</bool>
Notes:
This should also resolve the battery cover toast from appearing for a split second after a reboot and the screen is unlocked.
[Guide How-to] Bluetooth Scan Dialog Removal
This will remove the scan dialog popup when Bluetooth is enabled.
SecSettings.apk edit:
smali/com/android/settings/Bluetooth/BluetoothScanDialog.smali
.method private initialize()V
At the end of the method, delete the line in RED:
smali/com/android/settings/Bluetooth/BluetoothScanDialog.smali
.method private initialize()V
At the end of the method, delete the line in RED:
Code:
invoke-virtual {v0, v4}, Landroid/app/Dialog;->setOnCancelListener(Landroid/content/DialogInterface$OnCancelListener;)V
[COLOR="Red"]invoke-virtual {v0}, Landroid/app/Dialog;->show()V
[/COLOR]
return-void
.end method
[Guide How-to] Maximum StatusBar Brightness 4.4.2
I noticed that Samsung always make the statusbar notification areas a bit dim.
EXTRA - Also look at the link HERE
This requires decompiling SystemUI.apk.
SystemUI/res/values/dimens.xml edit
. .
This requires decompiling SystemUI.apk.
SystemUI/res/values/dimens.xml edit
Code:
Change these three lines
New values are in BLUE
<item type="dimen" name="status_bar_icon_drawing_alpha">[COLOR="Blue"]100.0%[/COLOR]</item>
<item type="dimen" name="system_icon_area_alpha">[COLOR="Blue"]1.0[/COLOR]</item>
<item type="dimen" name="notification_icon_area_alpha">[COLOR="Blue"]1.0[/COLOR]</item>
[Guide How-to] Remove Airplane Quicksetting Popup + ANDROID L
Remove the permission popup for Airplane mode when selected from Quicksettings.
SystemUI.apk smali edit:
com/android/systemui/statusbar/policy/quicksetting/AirplaneModeQuickSettingButton.smali
Add the following code in BLUE.
(the values MUST match the surrounding code and may be different for your build)
.method private showConfirmPopup(Z)V
Android L
Add new code in BLUE
smali\com\android\systemui\qs\tiles\AirplaneModeTile.smali
com/android/systemui/statusbar/policy/quicksetting/AirplaneModeQuickSettingButton.smali
Add the following code in BLUE.
(the values MUST match the surrounding code and may be different for your build)
.method private showConfirmPopup(Z)V
Code:
invoke-virtual {v6, v7}, Landroid/view/Window;->setType(I)V
:goto_4
[COLOR="Blue"] new-instance v8, Lcom/android/systemui/statusbar/policy/quicksetting/AirplaneModeQuickSettingButton$4;
invoke-direct {v8, p0, v5}, Lcom/android/systemui/statusbar/policy/quicksetting/AirplaneModeQuickSettingButton$4;-><init>(Lcom/android/systemui/statusbar/policy/quicksetting/AirplaneModeQuickSettingButton;Z)V
const v6, 0x0
invoke-virtual {v8, v6, v5}, Lcom/android/systemui/statusbar/policy/quicksetting/AirplaneModeQuickSettingButton$4;->onClick(Landroid/content/DialogInterface;I)V
return-void
[/COLOR]
iget-object v6, p0, Lcom/android/systemui/statusbar/policy/quicksetting/AirplaneModeQuickSettingButton;->mAlertDialog:Landroid/app/AlertDialog;
invoke-virtual {v6}, Landroid/app/Dialog;->show()V
Add new code in BLUE
smali\com\android\systemui\qs\tiles\AirplaneModeTile.smali
Code:
const/16 v5, 0x7d9
invoke-virtual {v4, v5}, Landroid/view/Window;->setType(I)V
:goto_3
[COLOR="Blue"]
new-instance v6, Lcom/android/systemui/qs/tiles/AirplaneModeTile$6;
invoke-direct {v6, p0, p1}, Lcom/android/systemui/qs/tiles/AirplaneModeTile$6;-><init>(Lcom/android/systemui/qs/tiles/AirplaneModeTile;Z)V
const v4, 0x0
invoke-virtual {v6, v4, p1}, Lcom/android/systemui/qs/tiles/AirplaneModeTile$6;->onClick(Landroid/content/DialogInterface;I)V
return-void[/COLOR]
iget-object v4, p0, Lcom/android/systemui/qs/tiles/AirplaneModeTile;->mAlertDialog:Landroid/app/AlertDialog;
invoke-virtual {v4}, Landroid/app/AlertDialog;->show()V
return-void
[Guide How-To] ENABLE CALL & MSG BLOCKING
This enables call and msg blocking natively.
Simple CSC edit.
system/csc/feature.xml edit
Must be inserted BEFORE
</FeatureSet>
</SamsungMobileFeature>
(** please note that feature.xml can be overwritten so this may not stick if using a third party software like Xposed)
. .
system/csc/feature.xml edit
Must be inserted BEFORE
</FeatureSet>
</SamsungMobileFeature>
(** please note that feature.xml can be overwritten so this may not stick if using a third party software like Xposed)
Code:
<CscFeature_Setting_EnableMenuBlockCallMsg>TRUE</CscFeature_Setting_EnableMenuBlockCallMsg>
____________________________________________________
[Guide How-To] ENABLE WiFi & USB Tethering (HOTSPOT)
This will enable WiFi Hotspot and USB tethering.
services.jar smali edit:
smali/com/android/server/connectivity/Tethering.smali
Search for the text highlighted in GREEN and make the edit in BLUE:
smali/com/android/server/connectivity/Tethering.smali
Search for the text highlighted in GREEN and make the edit in BLUE:
Code:
const-string/jumbo v1, "tether_dun_required"
[COLOR="Blue"]const/4 v2, 0x0[/COLOR]
invoke-static {v0, v1, v2}, Landroid/provider/Settings$Secure;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z
const-string v0, "Tethering"
[COLOR="Green"]const-string v1, "Set dun requiered as 1"
[/COLOR]
[Guide How-To] ENABLE DEVELOPER OPTIONS
This will enable Developer Options settings item without having to do the build multiple tap.
SecSettings.apk edits:
We will be editing multiple xml files and adding an entry to ids.xml.
res/values/ids.xml
res/xml edits same edit to all 4 listed:
general_headers.xml
grid_settings_headers.xml
management_headers.xml
settings_headers.xml
Before:
After:
We will be editing multiple xml files and adding an entry to ids.xml.
res/values/ids.xml
Code:
add this entry:
<item type="id" name="dev_settings">false</item>
general_headers.xml
grid_settings_headers.xml
management_headers.xml
settings_headers.xml
Before:
Code:
<header android:icon="@drawable/ic_settings_development" android:id="@id/development_settings" android:title="@string/development_settings_title" android:fragment="com.android.settings.DevelopmentSettings" />
Code:
<header android:icon="@drawable/ic_settings_development" android:id="@id/dev_settings" android:title="@string/development_settings_title" android:fragment="com.android.settings.DevelopmentSettings" />
Android 5.1.1 guide is --> HERE
__________________________________________________
[Guide How-To] CHANGE DEFAULT ANIMATION SCALES
This smali edit will change the default animation scales for increased GUI speed.
services.jar edit:
.method private constructor <init>(Landroid/content/Context;Lcom/android/server/power/PowerManagerService;Lcom/android/server/display/DisplayManagerService;Lcom/android/server/input/InputManagerService;ZZZ)V
Search down for first occurrence of 0x3f80
Make the changes in BLUE
.method private constructor <init>(Landroid/content/Context;Lcom/android/server/power/PowerManagerService;Lcom/android/server/display/DisplayManagerService;Lcom/android/server/input/InputManagerService;ZZZ)V
Search down for first occurrence of 0x3f80
Make the changes in BLUE
Code:
iput-object v9, p0, Lcom/android/server/wm/WindowManagerService;->mFocusedApp:Lcom/android/server/wm/AppWindowToken;
[COLOR="Blue"]const/high16 v9, 0x3f00[/COLOR]
iput v9, p0, Lcom/android/server/wm/WindowManagerService;->mWindowAnimationScale:F
[COLOR="Blue"]const/high16 v9, 0x3f00
[/COLOR]
iput v9, p0, Lcom/android/server/wm/WindowManagerService;->mTransitionAnimationScale:F
[COLOR="Blue"]const/high16 v9, 0x3f00[/COLOR]
iput v9, p0, Lcom/android/server/wm/WindowManagerService;->mAnimatorDurationScale:F
__________________________________________________
[Guide How-To] REMOVE IME KEYBOARD SWITCHER NOTIFICATION
This is a very simple edit but I couldn't find a guide anywhere to link to so here it is.
framework-res.apk edit:
res/values/bools.xml
Change the value indication in BLUE from true to false
res/values/bools.xml
Change the value indication in BLUE from true to false
Code:
<bool name="show_ongoing_ime_switcher">[COLOR="Blue"]false[/COLOR]</bool>
[Guide How-To] DISABLE HOME KEY WAKE
This will prevent the Home Key from waking the phone.
android.policy.jar smali edit:
smali/com/android/interal/policy/impl/PhoneWindowManager.smali
.method private isWakeKeyWhenScreenOff(I)Z
Add the new lines in BLUE
smali/com/android/interal/policy/impl/PhoneWindowManager.smali
.method private isWakeKeyWhenScreenOff(I)Z
Add the new lines in BLUE
Code:
:sswitch_1
move v0, v1
goto :goto_0
[COLOR="Blue"]:sswitch_4
return v1
nop
[/COLOR]
:sswitch_data_0
.sparse-switch
[COLOR="Blue"]0x3 -> :sswitch_4
[/COLOR] 0x18 -> :sswitch_0
0x19 -> :sswitch_0
__________________________________________________
[Guide How-To] REMOVE ROAMING NOTIFICATION
This will remove the ongoing Roaming notification.
SecTeleservice.apk smali edit:
smali/com/android/phone/PhoneGlobals$5.smali
Search for hideDataDisconnectedRoaming
(there is only one occurrence)
Delete the TWO lines in RED
smali/com/android/phone/PhoneGlobals$5.smali
Search for hideDataDisconnectedRoaming
(there is only one occurrence)
Delete the TWO lines in RED
Code:
iget-object v0, v0, Lcom/android/phone/PhoneGlobals;->notificationMgr:Lcom/android/phone/NotificationMgr;
move-object/from16 v30, v0
[COLOR="Red"] invoke-virtual/range {v30 .. v30}, Lcom/android/phone/NotificationMgr;->showDataDisconnectedRoaming()V
[/COLOR]
goto/16 :goto_0
:sswitch_7
move-object/from16 v0, p0
iget-object v0, v0, Lcom/android/phone/PhoneGlobals$5;->this$0:Lcom/android/phone/PhoneGlobals;
move-object/from16 v30, v0
move-object/from16 v0, v30
iget-object v0, v0, Lcom/android/phone/PhoneGlobals;->notificationMgr:Lcom/android/phone/NotificationMgr;
move-object/from16 v30, v0
[COLOR="Red"]invoke-virtual/range {v30 .. v30}, Lcom/android/phone/NotificationMgr;->hideDataDisconnectedRoaming()V
[/COLOR]
goto/16 :goto_0
[Guide How-To] DISABLE SCROLLING CACHE
This guide will show you how to disable scrolling cache.
framework2.jar smali edit:
smali/android/widget/AbsListView.smali
Make the modification in BLUE
Make the modification in BLUE
Make the modification in BLUE
Important note:
You will not see the .parameter if using apktool with the -b commandline decompile option. So don't use it.
smali/android/widget/AbsListView.smali
Make the modification in BLUE
Code:
.method private createScrollingCache()V
.locals 2
.prologue
[COLOR="Blue"]const/4 v1, 0x0[/COLOR]
Code:
.method private initAbsListView()V
.locals 11
.prologue
const-wide/16 v4, 0x0
const/4 v0, 0x0
const/4 v10, 0x1
.line 1159
invoke-virtual {p0, v10}, Landroid/view/View;->setClickable(Z)V
.line 1160
invoke-virtual {p0, v10}, Landroid/widget/AdapterView;->setFocusableInTouchMode(Z)V
.line 1161
invoke-virtual {p0, v0}, Landroid/view/View;->setWillNotDraw(Z)V
.line 1162
invoke-virtual {p0, v0}, Landroid/view/ViewGroup;->setAlwaysDrawnWithCacheEnabled(Z)V
.line 1163
[COLOR="Blue"]invoke-virtual {p0, v0}, Landroid/widget/AbsListView;->setScrollingCacheEnabled(Z)V
[/COLOR]
Important note:
You will not see the .parameter if using apktool with the -b commandline decompile option. So don't use it.
Code:
.method public setScrollingCacheEnabled(Z)V
.locals 1
[COLOR="Blue"].parameter "disabled"[/COLOR]
.prologue
.line 1999
[Guide How-To] DISABLE MSL & ENABLE PRL WRITE IN ##DATA# MENU
This guide disables the need to input MSL and also enables flashing PRL's right from the ##DATA# menu.
system/csc/sales_code.dat edit:
Our stock rom has XAS in this file and it needs to changed to SPR for the new features to work.
hiddenmenu.apk smali edit:
smali /com/android/hiddenmenu/hdata.smali
Search for the string "MSM7630_SURF".
There are 3 occurrences but only two of them have a "SPR" right above them.
We are changing the "SPR" to "SPX" in both occurrences:
smali/com/android/hiddenmenu/hdata_options.smali
This edit is similar to the ones above but we are changing "VZW" string to "SPR".
smali/com/android/hiddenmenu/HiddenmenuBroadcastReceiver.smali
Search for the FIRST occurrence of DebugMenu_Check
Delete lines in RED, change text in BLUE
Before:
After:
Our stock rom has XAS in this file and it needs to changed to SPR for the new features to work.
hiddenmenu.apk smali edit:
smali /com/android/hiddenmenu/hdata.smali
Search for the string "MSM7630_SURF".
There are 3 occurrences but only two of them have a "SPR" right above them.
We are changing the "SPR" to "SPX" in both occurrences:
Code:
if-nez v2, :cond_c
const-string v2, [COLOR="Blue"]"SPX"
[/COLOR]
sget-object v3, Lcom/android/hiddenmenu/hdata;->mSalesCode:Ljava/lang/String;
invoke-virtual {v2, v3}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v2
if-nez v2, :cond_c
const-string v2, "XAS"
sget-object v3, Lcom/android/hiddenmenu/hdata;->mSalesCode:Ljava/lang/String;
invoke-virtual {v2, v3}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v2
if-nez v2, :cond_c
const-string v2, "MSM7630_SURF"
Code:
:cond_c
const-string v2, [COLOR="Blue"]"SPX"
[/COLOR]
sget-object v3, Lcom/android/hiddenmenu/hdata;->mSalesCode:Ljava/lang/String;
invoke-virtual {v2, v3}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v2
if-nez v2, :cond_d
const-string v2, "MSM7630_SURF"
This edit is similar to the ones above but we are changing "VZW" string to "SPR".
Code:
const-string v3, "username_preference"
invoke-virtual {v2, v3}, Landroid/preference/PreferenceScreen;->setKey(Ljava/lang/String;)V
const-string v3, "Edit"
invoke-virtual {v2, v3}, Landroid/preference/PreferenceScreen;->setTitle(Ljava/lang/CharSequence;)V
const-string v3, [COLOR="Blue"]"SPR"[/COLOR]
sget-object v4, Lcom/android/hiddenmenu/hdata_options;->mSalesCode:Ljava/lang/String;
Search for the FIRST occurrence of DebugMenu_Check
Delete lines in RED, change text in BLUE
Before:
Code:
if-nez v0, :cond_2c
const-class v0, Lcom/android/hiddenmenu/DebugMenu_Check;
invoke-virtual {v3, p1, v0}, Landroid/content/Intent;->setClass(Landroid/content/Context;Ljava/lang/Class;)Landroid/content/Intent;
[COLOR="Red"]move-result-object v0
const-string v1, "keyString"
invoke-virtual {v0, v1, v5}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
[/COLOR]
move v1, v2
goto/16 :goto_5
Code:
if-nez v0, :cond_2c
const-class v0, Lcom/android/hiddenmenu/[COLOR="Blue"]DEBUGMENU[/COLOR];
invoke-virtual {v3, p1, v0}, Landroid/content/Intent;->setClass(Landroid/content/Context;Ljava/lang/Class;)Landroid/content/Intent;
move v1, v2
goto/16 :goto_5
(And permission to post a guide for it )
__________________________________________________
[Guide How-To] CREATE AN XPOSED PROOF FEATURES.XML FOR CSC TWEAKS
Lets face it, xposed modules always seem to overwrite my favorite CSC tweaks.
This guide will show you how to use your own custom features.xml that won't be overwritten.
framework2.jar smali edit:
smali/com/sec/android/app/CscFeature.smali
Search for and rename feature.xml to whatever you want.
There are two locations:
Now just copy your custom feature.xml to the file (EXAMPLE) ultimate.xml and place it in system/csc and it will be safe from being overwritten by third party apps/tweakers.
smali/com/sec/android/app/CscFeature.smali
Search for and rename feature.xml to whatever you want.
There are two locations:
Code:
.field private static final FEATURE_XML:Ljava/lang/String; = "/system/csc/[COLOR="Red"]feature.xml[/COLOR]"
const-string v10, "/system/csc/[COLOR="Red"]feature.xml[/COLOR]"
Code:
.field private static final FEATURE_XML:Ljava/lang/String; = "/system/csc/[COLOR="Blue"]ultimate.xml[/COLOR]"
const-string v10, "/system/csc/[COLOR="Blue"]ultimate.xml[/COLOR]"
[Guide How-To] ENABLE LOCKSCREEN ROTATION (with a toggle in mind)
I know there is a bools edit for this but this is the smali way so you can add a toggle.
Keyguard.apk smali edit:
smali/com/android/keyguard/KeyguardViewManager.smali
Change the text indicated in BLUE from 0x0 to 0x1
smali/com/android/keyguard/KeyguardViewManager.smali
Change the text indicated in BLUE from 0x0 to 0x1
Code:
.method private shouldEnableScreenRotation()Z
.locals 3
const/4 v1, [COLOR="Blue"]0x1
[/COLOR]
iget-object v2, p0, Lcom/android/keyguard/KeyguardViewManager;->mContext:Landroid/content/Context;
[Guide How-To] Remove Knox info in About screen
Knox is removed, now remove the info from the about screen too.
SecSettings smali edit:
smali\com\android\settings\DeviceInfoSettings.smali
Find and delete the following line:
smali\com\android\settings\DeviceInfoSettings.smali
Find and delete the following line:
Code:
invoke-direct/range {p0 .. p0}, Lcom/android/settings/DeviceInfoSettings;->showKnoxVersion()V
Note:
Many many hours go into developing the mods and creating guides for them.
It is also considered good form to hit the :good:Thanks button rather than saying it in open forum. (it just creates unnecessary clutter)
Attachments
Last edited: