[Verizon Galaxy Note 4 General] EMSpilot:
I will be compiling all my mods and other folks mods in this thread!!

[Guide How-to] Verizon Note 4 Remove CD Installer & ASEC

This removes the annoying CD installer that pops up when you plug into your computer and your phone will go straight to MTP.

Enjoy!!

Remove CD Installer Download: http://d-h.st/Wm7

Just flash with TWRP

[Guide How-to] Verizon Note 4 Enable Native Call Recording

Smali edit for InCallUI.apk:

com/android/services/telephony/common/PhoneFeature.smali

Add the lines that are highlighted in RED

const-string v3, "CscFeature_VoiceCall_ConfigRecording"

invoke-virtual {v0, v3}, Lcom/sec/android/app/CscFeature;->getString(Ljava/lang/String;)Ljava/lang/String;

move-result-object v0

[COLOR="Red"]const-string v0, "RecordingAllowed"[/COLOR]

.line 1693
sget-object v3, Lcom/android/services/telephony/common/PhoneFeature;->mFeatureList:Ljava/util/HashMap;

const-string v6, "voice_call_recording"

const-string v7, "RecordingAllowed"

const-string v3, "CscFeature_VoiceCall_ConfigRecording"

invoke-virtual {v0, v3}, Lcom/sec/android/app/CscFeature;->getString(Ljava/lang/String;)Ljava/lang/String;

move-result-object v0

const-string v0, "RecordingAllowed"

.line 1693
sget-object v3, Lcom/android/services/telephony/common/PhoneFeature;->mFeatureList:Ljava/util/HashMap;

const-string v6, "voice_call_recording"

const-string v7, "RecordingAllowed"

For those not capable of doing smali edits just flash this via TWRP. Enable Call Recording

[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:

.method private static concatenate(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
.locals 5
.param p0, "plmn" # Ljava/lang/CharSequence;
.param p1, "spn" # Ljava/lang/CharSequence;

.prologue
const/4 v2, 0x1

const/4 v3, 0x0

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

For those of you not capable of smali edit's, just flash this via TWRP Remove Lock Screen Carrier Text

[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:

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

goto :goto_1

.line 6873
.end local v0 # "e":Ljava/lang/Exception;
.end local v1 # "pm":Landroid/os/PowerManager;
.end local v3 # "wl":Landroid/os/PowerManager$WakeLock;
[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

For those not capable of smali edit's just flash this in TWRP Remove Safe Volume Warning

[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)

<CscFeature_Setting_EnableMenuBlockCallMsg>TRUE</CscFeature_Setting_EnableMenuBlockCallMsg>

For those of you not capable of this edit, just flash this with TWRP Native Call & Message Block

[Guide How-to] Replace Recents with Menu

Keylayout edits:

system/usr/keylayout/Generic.kl

Change key 254 from APP_SWITCH to MENU

key 254 MENU

Download: Generic.kl

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.

[Guide How-to] VZW Note 4 4 Way Reboot Power Menu EPM

This will work with Odex or Deodexed Rom. To see the 4 way Menu you must hit restart on the Primary Menu!!!

First grab your Deodexed android.policy.jar from system/framework

Decompile it with APKTOOL. Look in smali\com\android\internal\policy\impl\

Find GlobalActions$SinglePressAction.smali and open with NotePad++

Look for this:

.class abstract Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;
.super Ljava/lang/Object;
.source "GlobalActions.java"

# interfaces
.implements Lcom/android/internal/policy/impl/GlobalActions$Action;

# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/android/internal/policy/impl/GlobalActions;
.end annotation

.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x40a
name = "SinglePressAction"
.end annotation

# instance fields
.field public customAction:I

.field public isKnoxCustom:Z

.field private final mIcon:Landroid/graphics/drawable/Drawable;

.field private final mIconResId:I

.field mLayoutId:I

.field private final mMessage:Ljava/lang/CharSequence;

.field private final mMessageResId:I

# direct methods
.method protected constructor <init>(II)V
.locals 2
.param p1, "iconResId" # I
.param p2, "messageResId" # I

Add in the Red Text to look like this:

.class abstract Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;
.super Ljava/lang/Object;
.source "GlobalActions.java"

# interfaces
.implements Lcom/android/internal/policy/impl/GlobalActions$Action;

# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/android/internal/policy/impl/GlobalActions;
.end annotation

.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x40a
name = "SinglePressAction"
.end annotation

[COLOR="Red"]# static fields
.field protected static rebootMode:I

.field protected static final rebootOptions:[Ljava/lang/String;[/COLOR]

# instance fields
.field public customAction:I

.field public isKnoxCustom:Z

.field private final mIcon:Landroid/graphics/drawable/Drawable;

.field private final mIconResId:I

.field mLayoutId:I

.field private final mMessage:Ljava/lang/CharSequence;

.field private final mMessageResId:I

# direct methods
[COLOR="Red"].method static constructor <clinit>()V
.locals 3

const/4 v0, 0x4

new-array v0, v0, [Ljava/lang/String;

const/4 v1, 0x0

const-string v2, "Reboot"

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, "Download"

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/GlobalActions$SinglePressAction;->rebootOptions:[Ljava/lang/String;

return-void
.end method[/COLOR]

.method protected constructor <init>(II)V
.locals 2
.param p1, "iconResId" # I
.param p2, "messageResId" # I

Save file and look for GlobalActions.smali in the same folder.

Find this:

invoke-direct {v2, v0, v3, v4}, Lcom/android/internal/policy/impl/GlobalActions$7;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V

move-object/from16 v0, p0

iput-object v2, v0, Lcom/android/internal/policy/impl/GlobalActions;->mPowerOff:Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;

.line 1126
new-instance v3, Lcom/android/internal/policy/impl/GlobalActions$8;

const-string v2, "VZW"

sget-object v4, Lcom/android/internal/policy/impl/GlobalActions;->mSalesCode:Ljava/lang/String;

invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

move-result v2

if-eqz v2, :cond_3

const v2, 0x1080b2d

:goto_2
const v4, 0x10401cf

move-object/from16 v0, p0

invoke-direct {v3, v0, v2, v4}, Lcom/android/internal/policy/impl/GlobalActions$8;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V

move-object/from16 v0, p0

iput-object v3, v0, Lcom/android/internal/policy/impl/GlobalActions;->mRestart:Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;

.line 1164
new-instance v2, Lcom/android/internal/policy/impl/GlobalActions$9;

Change the red text to look like this:

invoke-direct {v2, v0, v3, v4}, Lcom/android/internal/policy/impl/GlobalActions$7;-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V

move-object/from16 v0, p0

iput-object v2, v0, Lcom/android/internal/policy/impl/GlobalActions;->mPowerOff:Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;

.line 1126
new-instance v3, Lcom/android/internal/policy/impl/GlobalActions$[COLOR="Red"]99[/COLOR];

const-string v2, "VZW"

sget-object v4, Lcom/android/internal/policy/impl/GlobalActions;->mSalesCode:Ljava/lang/String;

invoke-virtual {v2, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

move-result v2

if-eqz v2, :cond_3

const v2, 0x1080b2d

:goto_2
const v4, 0x10401cf

move-object/from16 v0, p0

invoke-direct {v3, v0, v2, v4}, Lcom/android/internal/policy/impl/GlobalActions$[COLOR="Red"]99[/COLOR];-><init>(Lcom/android/internal/policy/impl/GlobalActions;II)V

move-object/from16 v0, p0

iput-object v3, v0, Lcom/android/internal/policy/impl/GlobalActions;->mRestart:Lcom/android/internal/policy/impl/GlobalActions$SinglePressAction;

.line 1164
new-instance v2, Lcom/android/internal/policy/impl/GlobalActions$9;

Save file.

Add the 3 smali files in this zip to the same folder: Smali-Files-Zip

Now recompile. That's it.

For those of you not able to edit smali. Here is a zip flashable with TWRP. VZW Note 4 4 Way EPM Menu

To see the 4 way Menu you must hit restart on the Primary Menu!!!

Enjoy!!!

Framework Mods- Note 4 Native WiFi Tether, All Rotations, Safe Media Volume Disabled, Dreams enabled, Battery Critical Warnings lowered to 1%.

Here is the download: Framework Mods

Here is the download to return to stock: Stock Framework

Enjoy!!!

[Guide How-to] Remove NFC notification icon in status bar

First grab your Features.xml from /system/csc/

Open with Notepad++ and look for following text:

<!-- NFC -->
<CscFeature_NFC_SetSecureEventType>ISIS</CscFeature_NFC_SetSecureEventType>
<CscFeature_NFC_StatusBarIconType>Vzw</CscFeature_NFC_StatusBarIconType>
<CscFeature_SmartcardSvc_SetAccessControlType>GPAC, MODE1</CscFeature_SmartcardSvc_SetAccessControlType>
<CscFeature_SmartcardSvc_HideTerminalCapability>eSE</CscFeature_SmartcardSvc_HideTerminalCapability>
<CscFeature_NFC_CardModeRoutingTypeForUicc>ROUTE_ON_WHEN_SCREEN_UNLOCK</CscFeature_NFC_CardModeRoutingTypeForUicc>
<CscFeature_NFC_EnableSecurityPromptPopup>all</CscFeature_NFC_EnableSecurityPromptPopup>
<CscFeature_NFC_EnableInvalidTagPopup>true</CscFeature_NFC_EnableInvalidTagPopup>
<CscFeature_NFC_ConfigAdvancedSettings>Disable</CscFeature_NFC_ConfigAdvancedSettings>
<CscFeature_NFC_DefaultCardModeConfig>DH:UICC</CscFeature_NFC_DefaultCardModeConfig>

Change the red text to look like this:

<!-- NFC -->
<CscFeature_NFC_SetSecureEventType>ISIS</CscFeature_NFC_SetSecureEventType>
<CscFeature_NFC_StatusBarIconType>[COLOR="Red"]none[/COLOR]</CscFeature_NFC_StatusBarIconType>
<CscFeature_SmartcardSvc_SetAccessControlType>GPAC, MODE1</CscFeature_SmartcardSvc_SetAccessControlType>
<CscFeature_SmartcardSvc_HideTerminalCapability>eSE</CscFeature_SmartcardSvc_HideTerminalCapability>
<CscFeature_NFC_CardModeRoutingTypeForUicc>ROUTE_ON_WHEN_SCREEN_UNLOCK</CscFeature_NFC_CardModeRoutingTypeForUicc>
<CscFeature_NFC_EnableSecurityPromptPopup>all</CscFeature_NFC_EnableSecurityPromptPopup>
<CscFeature_NFC_EnableInvalidTagPopup>true</CscFeature_NFC_EnableInvalidTagPopup>
<CscFeature_NFC_ConfigAdvancedSettings>Disable</CscFeature_NFC_ConfigAdvancedSettings>
<CscFeature_NFC_DefaultCardModeConfig>DH:UICC</CscFeature_NFC_DefaultCardModeConfig>

Save file and copy back to /system/csc, reboot and boom its gone!!!

Enjoy!!

[Guide How-to] Enable Private Mode with a deodexed Rom and SecureStorage=false

First thing you need to do is grab PersonalPageService.apk from system/priv-app

Decompile with APKTOOL

Find PersonalPageService\smali\com\samsung\android\personalpage\service\util\SecureProperties.smali open with Notepad++

Find the follow code:

.method public constructor <init>(Landroid/content/Context;)V
.locals 2
.param p1, "context" # Landroid/content/Context;

.prologue
const/4 v1, 0x1

.line 61
invoke-direct {p0}, Ljava/lang/Object;-><init>()V

.line 54
const/4 v0, 0x0

iput-object v0, p0, Lcom/samsung/android/personalpage/service/util/SecureProperties;->mImpl:Lcom/samsung/android/personalpage/service/util/SecureProperties$PropertiesImpl;

.line 63
invoke-static {}, Landroid/os/Debug;->isProductShip()I

move-result v0

if-nez v0, :cond_3

.line 64
invoke-static {}, Lcom/sec/android/securestorage/SecureStorage;->isSupported()Z

move-result v0

if-nez v0, :cond_2

.line 65
const/4 v0, 0x0

sput-boolean v0, Lcom/samsung/android/personalpage/service/util/SecureProperties;->SUPPORT_SECURE_STORAGE_FEATURE:Z

.line 72
:goto_0
sget-boolean v0, Lcom/samsung/android/personalpage/service/util/SecureProperties;->SUPPORT_SECURE_STORAGE_FEATURE:Z

if-eqz v0, :cond_0

Replace the items in Red like this:

.method public constructor <init>(Landroid/content/Context;)V
.locals 2
.param p1, "context" # Landroid/content/Context;

.prologue
const/4 v1, 0x1

.line 61
invoke-direct {p0}, Ljava/lang/Object;-><init>()V

.line 54
const/4 v0, 0x0

iput-object v0, p0, Lcom/samsung/android/personalpage/service/util/SecureProperties;->mImpl:Lcom/samsung/android/personalpage/service/util/SecureProperties$PropertiesImpl;

.line 63
invoke-static {}, Landroid/os/Debug;->isProductShip()I

move-result v0

[COLOR="Red"]if-nez v0, :cond_0[/COLOR]

.line 64
invoke-static {}, Lcom/sec/android/securestorage/SecureStorage;->isSupported()Z

move-result v0

[COLOR="Red"]if-nez v0, :cond_0[/COLOR]

.line 65
const/4 v0, 0x0

sput-boolean v0, Lcom/samsung/android/personalpage/service/util/SecureProperties;->SUPPORT_SECURE_STORAGE_FEATURE:Z

.line 72
:goto_0
sget-boolean v0, Lcom/samsung/android/personalpage/service/util/SecureProperties;->SUPPORT_SECURE_STORAGE_FEATURE:Z

if-eqz v0, :cond_0

Save file and compile apk. Push to system/priv-app

For those not capable of changing smali files here is a flashable zip: PersonalPageService.apk

Enjoy!!!

[Guide How-To] Enable Lockscreen Rotation

First grab Keyguard.apk from system/priv-app

Decompile with APKTOOL.

Open smali file smali/com/android/keyguard/KeyguardViewManager.smali

Look for the following:

.method private shouldEnableScreenRotation()Z
.locals 3

.prologue
const/4 v1, 0x0

.line 249
iget-object v2, p0, Lcom/android/keyguard/KeyguardViewManager;->mContext:Landroid/content/Context;

invoke-virtual {v2}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;

move-result-object v0

.line 250
.local v0, "res":Landroid/content/res/Resources;
const-string v2, "lockscreen.rot_override"

invoke-static {v2, v1}, Landroid/os/SystemProperties;->getBoolean(Ljava/lang/String;Z)Z

move-result v2

Replace the Red text to look like this:

.method private shouldEnableScreenRotation()Z
.locals 3

.prologue
[COLOR="Red"]const/4 v1, 0x1[/COLOR]

.line 249
iget-object v2, p0, Lcom/android/keyguard/KeyguardViewManager;->mContext:Landroid/content/Context;

invoke-virtual {v2}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;

move-result-object v0

.line 250
.local v0, "res":Landroid/content/res/Resources;
const-string v2, "lockscreen.rot_override"

invoke-static {v2, v1}, Landroid/os/SystemProperties;->getBoolean(Ljava/lang/String;Z)Z

move-result v2

Compile and push to system/priv-app

For those that are unable to edit smali here is a flashable zip: LockSceen Rotation

Enjoy!!

[Guide How-to] Disable Screen Wake Plugged/Unplugged

First grab your services.jar from system/framework and decompile with APKTOOL

Find smali\com\android\server\power\PowerManagerService .smali and open PowerManagerService with Notepad++

Look for the following:

.method private shouldWakeUpWhenPluggedOrUnpluggedLocked(ZIZ)Z
.locals 4
.param p1, "wasPowered" # Z
.param p2, "oldPlugType" # I
.param p3, "dockedOnWirelessCharger" # Z

.prologue
const/4 v1, 0x1

const/4 v0, 0x0

.line 2216
iget-boolean v2, p0, Lcom/android/server/power/PowerManagerService;->mWakeUpWhenPluggedOrUnpluggedConfig:Z

if-nez v2, :cond_1

Change to Red text to look like this:

.method private shouldWakeUpWhenPluggedOrUnpluggedLocked(ZIZ)Z
.locals 4
.param p1, "wasPowered" # Z
.param p2, "oldPlugType" # I
.param p3, "dockedOnWirelessCharger" # Z

.prologue
[COLOR="Red"]const/4 v1, 0x0[/COLOR]

const/4 v0, 0x0

.line 2216
iget-boolean v2, p0, Lcom/android/server/power/PowerManagerService;->mWakeUpWhenPluggedOrUnpluggedConfig:Z

if-nez v2, :cond_1

That's it. Compile and push to system/framework

For those of you not capable of editing smali files here is a flashable zip: Disable Screen Wake Plug/unpluged

Enjoy!!!

[Guide How-to] Bluetooth Scan Dialog Removal

First grab your SecSettings.apk from system/priv-app and decompile with APKTOOL

Find smali/com/android/settings/Bluetooth/BluetoothScanDialog.smali

Look for the follow in .method private initialize()V method:

.line 79
new-instance v4, Lcom/android/settings/bluetooth/BluetoothScanDialog$3;

invoke-direct {v4, p0, v0}, Lcom/android/settings/bluetooth/BluetoothScanDialog$3;-><init>(Lcom/android/settings/bluetooth/BluetoothScanDialog;Landroid/app/AlertDialog;)V

invoke-virtual {v0, v4}, Landroid/app/Dialog;->setOnCancelListener(Landroid/content/DialogInterface$OnCancelListener;)V

.line 86
[COLOR="Red"]invoke-virtual {v0}, Landroid/app/Dialog;->show()V[/COLOR]

.line 87
return-void
.end method

Delete the text in Red, save file and compile. That's it. push to system/priv-app

Enjoy!!!

Flashlight Toggle & Battery Stats Toggle Mod Flashable-Settings-About Phone-Status-OFFICIAL Zip Updated 12-3-2014

Here is the flashable Flashlight Toggle Mod: VZW Flash Light Battery Stats Toggle Mod-Official Status

YOU MUST WAIT AT LEAST 5-10 MINS AFTER FLASHING FOR THE MOD TO WORK.

Some of you might also have to add "Flashlight" to your settings DB via SQLite. To see the toggle.

1) Download sqlite editor app. I got it from here.

2) Open the app and give it root permissions. It should populate a list.

3) Scroll and Tap the "Settings Storage"

4) Tap "Settings.db"

5) Tap "System"

6) Scroll down until you find "notification_panel_active_app_list", tap to highlight it. I noticed its a little hard to get it highlighted because it seems to want to highlight the one under it. So you might have to tap the one right above it to get it highlighted. Make sure its the notification_panel_active_app_list, and I also updated my notification_panel_active_app_list_reset NOT the notification_panel_default_active_app_list. I picked the wrong one the first time and it didnt work.

7) Once it is highlighted tap the phones menu button.

8) Tap "Edit Record"

9) You'll see a list of all the toggles that are currently enabled to show in notification area.

10) At the bottom of the list or anywhere else in the list add ; and the words Flashlight and Battery then another ;. So it will look like this at the end. ;TouchSensitivity;Flashlight;Battery; Then press Save.

11) Reboot and you should have a Flashlight and a Battery Stats toggle now. You can now use the edit feature and move it anywhere you want in the list of toggles.

This might also have a positive side effect of the following:

When you go to Settings-About Phone-Status it might say OFFICIAL!!!

Enjoy!!!

Enable Tab view in Settings

First grab your SecSettings.apk from system/priv-app

Decompile with APKTOOL and open res.values/bools with Notepad++

look for the following 2 lines:

<bool name="settings_list">false</bool>
<bool name="settings_grid">true</bool>

Change them to look like this:

<bool name="settings_list">[COLOR="Red"]true[/COLOR]</bool>
<bool name="settings_grid">[COLOR="Red"]false[/COLOR]</bool>

That's it. Compile and push to System/priv-app

Enjoy!!

How to enable Flashlight operation with Volume

First grab your SecSettings.apk from system/priv-app and decompile with APKTOOL.

Look in res/xml for display_settings_2014.xml and open with Notepad++

Add the following line in Red. When you are done look in settings-Display and you will see Torch Light options menu

<CheckBoxPreference android:title="@string/led_indicator_settings" android:key="key_simple_led_indicator_settings" android:summary="@string/led_indicator_settings_summary" android:widgetLayout="@touchwiz:layout/preference_widget_twcheckbox" />
[COLOR="Red"]<PreferenceScreen android:title="@string/torchlight_settings" android:key="torchlight" android:fragment="com.android.settings.torchlight.TorchlightSettings" />[/COLOR]
<ListPreference android:persistent="false" android:entries="@array/touch_key_light_entries" android:title="@string/touch_key_light" android:key="touch_key_light" android:summary="@string/touch_key_light_summary" android:widgetLayout="@layout/round_more_icon" android:entryValues="@array/touch_key_light_values" />

Compile and push to system/priv-app

That's it.

Enjoy!!!!

How to Enable add Apps Ops to Settings.

First grab SecSettings.apk from system/priv-app and decompile with APKTOOL

Get gridlist_settings_headers.xml from res/xml and edit with Notepad++

Look for:

<header android:icon="@drawable/ic_setting_grid_powersaving" android:id="@id/power_saving" android:title="@string/power_saving_mode_title_k" android:fragment="com.android.settings.powersavingmode.MenuPowerSavingModeSettings" />

and add right below it the following:

<header android:icon="@drawable/ic_settings_applicationpermissions" android:title="@string/app_ops_settings" android:fragment="com.android.settings.applications.AppOpsSummary" />

Save file and compile. That's it.

Push to system/priv-app

Enjoy!!!