[MOD][HOW-TO] User Selectable Long Press Menu or Back to Kill

Search This thread

ch3mistry2222

Senior Member
Apr 13, 2013
350
38
So, follow ur way, i ll get long press menu to kill app, or long press back to kill app???? Tks

Sent from my GT-I9100G using Tapatalk
 

TheDriller

Senior Member
Jan 31, 2012
4,299
6,681
Augusta, GA
The back to kill won't work because of multi window. And sorry no flashable zips anywhere because of all the differences in all the ap jars.

Tapatalk 4 sucks
RErickOilfieldTrash3_zpse29e1dc7.png
 

metalfan78

Senior Member
Jan 30, 2010
5,009
2,476
Littleton, CO
So I used this guide and only added the code for the menu button and it compiles fine and the phone boots but the function of the menu button did not change. Not sure if that was the way to do it or not.
 

Sami Kabir

Senior Member
Oct 3, 2012
2,233
1,410
@loserskater,

1. Instead of placing the options in Settings > Display, I'd like to place it in Settings > Accessibility menu.. so how can I do that?
2. Will this work on other Samsung devices like my SGSA running Samsung's 4.1.2 firmware?
 

tempdroid

Senior Member
May 22, 2013
561
801
So loser made some changes to your android policy that makes back button to work when multi-win is disabled.
I managed to find a way that theoretically make the back button to work either MW is enabled or disabled
but i can't figure out the changes loser made to your android policy to make the back button even work

Edit: yay i got it to work with mw on/off
thanks alvin & Loser

Hi mate,

if you read this, could you post your modified android.policy.jar working with and without MW?

Thanks a lot.
 
S

SuperDroid-BOND

Guest
Dear Sir @loserskater

I want tohave this MOD but not in touch wiz but in my STOCK AOSP like ROM of a MTK (Mediatek Chipset) Device.
Would you mind helping me in doing this MOD for my ROM.
Help is highly expected & appreciated.

Thanks & Regards
BOND
 

Top Liked Posts

  • There are no posts matching your filters.
  • 29
    This will allow users to select menu or back to kill apps in real time. No flashing, rebooting, etc.
    This will not work with multiwindow.

    We're going to be working with the following two files:
    SecSettings.apk
    android.policy.jar



    KEY
    REMOVE what's in BLUE
    ADD what's in RED



    SecSettings.apk
    Navigate to /res/values/arrays.xml
    Add the following to the end of the file
    Code:
    <string-array name="long_press_kill_entries">
            <item>Back</item>
            <item>Menu</item>
        </string-array>
        <string-array name="long_press_kill_values">
            <item>0</item>
            <item>1</item>
        </string-array>
    Navigate to /res/values/strings.xml
    Add the following to the end of the file
    Code:
        <string name="long_press_kill_title">Long Press to Kill Button</string>
        <string name="long_press_kill_summary">%s</string>
    Navigate to /xml/display_settings.xml
    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <PreferenceScreen android:title="@string/display_settings"
      xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
        <PreferenceCategory android:title="@string/tts_general_section_title" />
        <PreferenceScreen android:title="@string/wallpaper" android:key="wallpaper" android:fragment="com.android.settings.WallpaperSettings" />
        <PreferenceScreen android:title="@string/led_indicator_settings" android:key="led_indicator_settings" android:fragment="com.android.settings.LedIndicatorSettings" />
        <SwitchPreferenceScreen android:title="@string/page_buddy" android:key="contextualpage_settings" android:summary="@string/page_buddy_summary" android:fragment="com.android.settings.ContextualPageSettings" />
        <PreferenceCategory android:title="@string/display_label" android:key="screen_category" />
        <PreferenceScreen android:title="@string/screen_mode_setting" android:key="mode" android:summary="@string/screen_mode_summary">
            <intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.ModePreview" />
        </PreferenceScreen>
        <com.android.settings.BrightnessPreference android:title="@string/brightness" android:key="brightness" android:widgetLayout="@layout/round_more_icon" android:dialogTitle="@string/brightness" />
        <CheckBoxPreference android:title="@string/accelerometer_title_second" android:key="accelerometer_second" />
        <CheckBoxPreference android:title="@string/accelerometer_title" android:key="accelerometer" />
        <ListPreference android:persistent="false" android:entries="@array/screen_timeout_entries" android:title="@string/screen_timeout" android:key="screen_timeout" android:summary="@string/screen_timeout_summary" android:widgetLayout="@layout/round_more_icon" android:entryValues="@array/screen_timeout_values" />
        <PreferenceScreen android:title="@string/screensaver_settings_title" android:key="screensaver" android:fragment="com.android.settings.DreamSettings" />
        <CheckBoxPreference android:title="@string/brightness_slider_title" android:key="display_brightness_slider" android:summary="@string/brightness_slider_summary" />
        <PreferenceCategory android:title="@string/features_category_title" android:key="features_category" />
        <CheckBoxPreference android:title="@string/intelligent_rotation_title" android:key="intelligent_rotation" android:summary="@string/intelligent_rotation_summary" />
        <CheckBoxPreference android:title="@string/intelligent_sleep_title" android:key="intelligent_sleep" android:summary="@string/intelligent_sleep_summary" />
        <PreferenceCategory android:title="@string/font" />
        <com.android.settings.flipfont.FontListPreference android:title="@string/monotype_preference_title" android:key="MONOTYPE" android:summary="@string/monotype_preference_summary" android:widgetLayout="@layout/round_more_icon" />
        <com.android.settings.FontSizeListPreference android:entries="@array/entries_font_size" android:title="@string/title_font_size" android:key="font_size" android:summary="@string/summary_font_size" android:widgetLayout="@layout/round_more_icon" android:dialogTitle="@string/dialog_title_font_size" android:entryValues="@array/entryvalues_font_size" />
        <PreferenceCategory android:title="@string/more_settings" android:key="more_settings" />
        <ListPreference android:persistent="false" android:entries="@array/quick_launch_entries" android:title="@string/quick_launch_title" android:key="quick_launch" android:summary="@string/screen_quick_launch_summary" android:widgetLayout="@layout/round_more_icon" android:entryValues="@array/quick_launch_values" />
        <CheckBoxPreference android:title="@string/sub_lcd_auto_lock" android:key="sub_lcd_auto_lock" android:summary="@string/sub_lcd_auto_lock_summary" />
        <CheckBoxPreference android:title="@string/key_night_mode" android:key="key_night_mode" />
        <ListPreference android:persistent="false" android:entries="@array/key_backlight_entries" android:title="@string/key_backlight" android:key="key_backlight" android:widgetLayout="@layout/round_more_icon" android:entryValues="@array/key_backlight_values" />
        <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" />
        <CheckBoxPreference android:persistent="false" android:title="@string/display_saving" android:key="power_saving_mode" android:summary="@string/display_saving_mode_summary" />
        <CheckBoxPreference android:persistent="false" android:title="@string/notification_pulse_title" android:key="notification_pulse" />
        <CheckBoxPreference android:title="@string/edgezoom_title" android:key="edgezoom_toggle" android:summary="@string/edgezoom_summary" />
        <com.loser.colorpicker.ColorPickerPreference android:persistent="false" android:title="@string/statusbar_color_title" android:key="statusbar_color" android:summary="@string/statusbar_color_summary" android:defaultValue="0xff000000" alphaSlider="true" />
        <CheckBoxPreference android:title="@string/enable_ime_icon" android:key="enable_ime_icon" android:summary="@string/enable_ime_icon_text" />
        [COLOR="Red"]<ListPreference android:persistent="false" android:entries="@array/long_press_kill_entries" android:title="@string/long_press_kill_title" android:key="long_press_kill" android:summary="@string/long_press_kill_summary" android:widgetLayout="@layout/round_more_icon" android:entryValues="@array/long_press_kill_values" />[/COLOR]
        <PreferenceCategory android:title="@string/battery_icon_category" android:key="battery_icon_category">
            <ListPreference android:entries="@array/battery_icon_entries" android:title="@string/battery_icon" android:key="battery_icon_list" android:entryValues="@array/battery_icon_values" />
            <CheckBoxPreference android:persistent="false" android:title="@string/display_battery_percentage" android:key="display_battery_level" android:summary="@string/display_battery_percentage_summary" />
            <CheckBoxPreference android:title="@string/battery_notif_title" android:key="battery_notif" android:summary="@string/battery_notif_summary" />
        </PreferenceCategory>
    </PreferenceScreen>

    Navigate to /smali/com/android/settings/DisplaySettings.smali
    Code:
    .field private final mIntentReceiver:Landroid/content/BroadcastReceiver;
    
    .field private mKeyBacklightmode:Landroid/preference/CheckBoxPreference;
    
    [COLOR="red"].field mLongPressKill:Landroid/preference/ListPreference;[/COLOR]
    
    .field private mNotificationPulse:Landroid/preference/CheckBoxPreference;
    
    .field private mPowerSavingMode:Landroid/preference/CheckBoxPreference;

    method private updateState()V
    Code:
    iget-object v0, p0, Lcom/android/settings/DisplaySettings;->mTouchKeyLight:Landroid/preference/ListPreference;
    
        invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getContentResolver()Landroid/content/ContentResolver;
    
        move-result-object v3
    
        const-string v4, "button_key_light"
    
        const/16 v5, 0x5dc
    
        invoke-static {v3, v4, v5}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
    
        move-result v3
    
        invoke-static {v3}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
    
        move-result-object v3
    
        invoke-virtual {v0, v3}, Landroid/preference/ListPreference;->setValue(Ljava/lang/String;)V
    
        [COLOR="red"]iget-object v0, p0, Lcom/android/settings/DisplaySettings;->mLongPressKill:Landroid/preference/ListPreference;
    
        invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getContentResolver()Landroid/content/ContentResolver;
    
        move-result-object v3
    
        const-string v4, "long_press_kill"
    
        const/16 v5, 0x0
    
        invoke-static {v3, v4, v5}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
    
        move-result v3
    
        invoke-static {v3}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
    
        move-result-object v3
    
        invoke-virtual {v0, v3}, Landroid/preference/ListPreference;->setValue(Ljava/lang/String;)V
    
        iget-object v0, p0, Lcom/android/settings/DisplaySettings;->mLongPressKill:Landroid/preference/ListPreference;
    
        iget-object v3, p0, Lcom/android/settings/DisplaySettings;->mLongPressKill:Landroid/preference/ListPreference;
    
        invoke-virtual {v3}, Landroid/preference/ListPreference;->getEntry()Ljava/lang/CharSequence;
    
        move-result-object v3
    
        invoke-virtual {v0, v3}, Landroid/preference/ListPreference;->setSummary(Ljava/lang/CharSequence;)V[/COLOR]
    
        .line 809
        iget-boolean v0, p0, Lcom/android/settings/DisplaySettings;->mSupportFolderType:Z
    
        if-eqz v0, :cond_0
    
        .line 810
        invoke-direct {p0}, Lcom/android/settings/DisplaySettings;->updateAccelerometerRotationSecondCheckbox()V
    
        .line 811
        iget-object v3, p0, Lcom/android/settings/DisplaySettings;->mAutoLockmode:Landroid/preference/CheckBoxPreference;
    
        invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getContentResolver()Landroid/content/ContentResolver;
    
        move-result-object v0
    
        const-string v4, "sub_lcd_auto_lock"

    method public onCreate(Landroid/os/Bundle;)V
    Code:
        const-string v11, "font_size"
    
        invoke-virtual {p0, v11}, Lcom/android/settings/DisplaySettings;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;
    
        move-result-object v11
    
        check-cast v11, Landroid/preference/ListPreference;
    
        iput-object v11, p0, Lcom/android/settings/DisplaySettings;->mFontSizePref:Landroid/preference/ListPreference;
    
        .line 394
        iget-object v11, p0, Lcom/android/settings/DisplaySettings;->mFontSizePref:Landroid/preference/ListPreference;
    
        invoke-virtual {v11, p0}, Landroid/preference/ListPreference;->setOnPreferenceChangeListener(Landroid/preference/Preference$OnPreferenceChangeListener;)V
    
        [COLOR="red"]const-string v11, "long_press_kill"
    
        invoke-virtual {p0, v11}, Lcom/android/settings/DisplaySettings;->findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;
    
        move-result-object v11
    
        check-cast v11, Landroid/preference/ListPreference;
    
        iput-object v11, p0, Lcom/android/settings/DisplaySettings;->mLongPressKill:Landroid/preference/ListPreference;
    
        iget-object v11, p0, Lcom/android/settings/DisplaySettings;->mLongPressKill:Landroid/preference/ListPreference;
    
        invoke-virtual {v11, p0}, Landroid/preference/ListPreference;->setOnPreferenceChangeListener(Landroid/preference/Preference$OnPreferenceChangeListener;)V[/COLOR]
    
        .line 398
        invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getActivity()Landroid/app/Activity;
    
        move-result-object v11
    
        invoke-static {v11}, Lcom/android/settings/Utils;->isTablet(Landroid/content/Context;)Z
    
        move-result v11
    
        if-eqz v11, :cond_6

    .method public onPreferenceChange(Landroid/preference/Preference;Ljava/lang/Object;)Z
    Code:
        :catch_2
        move-exception v0
    
        .line 991
        const-string v1, "DisplaySettings"
    
        const-string v2, "could not persist Touch key light setting"
    
        invoke-static {v1, v2, v0}, Landroid/util/Log;->secE(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
    
        goto/16 :goto_4
    
        .line 993
        :cond_9
        [COLOR="red"]const-string v2, "long_press_kill"
    
        invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
    
        move-result v2
    
        if-eqz v2, :cond_next
    
        .line 986
        check-cast p2, Ljava/lang/String;
    
        invoke-static {p2}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
    
        move-result v0
    
        invoke-virtual {p0}, Lcom/android/settings/DisplaySettings;->getContentResolver()Landroid/content/ContentResolver;
    
        move-result-object v1
    
        const-string v2, "long_press_kill"
    
        invoke-static {v1, v2, v0}, Landroid/provider/Settings$System;->putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z
    
        .line 989
        iget-object v1, p0, Lcom/android/settings/DisplaySettings;->mLongPressKill:Landroid/preference/ListPreference;
    
        invoke-static {v0}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
    
        move-result-object v0
    
        invoke-virtual {v1, v0}, Landroid/preference/ListPreference;->setValue(Ljava/lang/String;)V
    
        iget-object v0, p0, Lcom/android/settings/DisplaySettings;->mLongPressKill:Landroid/preference/ListPreference;
    
        iget-object v1, p0, Lcom/android/settings/DisplaySettings;->mLongPressKill:Landroid/preference/ListPreference;
    
        invoke-virtual {v1}, Landroid/preference/ListPreference;->getEntry()Ljava/lang/CharSequence;
    
        move-result-object v1
    
        invoke-virtual {v0, v1}, Landroid/preference/ListPreference;->setSummary(Ljava/lang/CharSequence;)V
    
        goto/16 :goto_4
    
        .line 993
        :cond_next[/COLOR]
        const-string v2, "quick_launch"
    
        invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
    
        move-result v2
    
        if-eqz v2, :cond_a
    
        .line 994
        check-cast p2, Ljava/lang/String;
    
        invoke-static {p2}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
    
        move-result v0

    Now compile and move on to android.policy.jar.
    15
    android.policy.jar


    Navigate to /smali/com/android/internal/policy/impl/PhoneWindowManager$SettingsObserver.smali

    .method observe()V
    Code:
        const-string v1, "incall_power_button_behavior"
    
        invoke-static {v1}, Landroid/provider/Settings$Secure;->getUriFor(Ljava/lang/String;)Landroid/net/Uri;
    
        move-result-object v1
    
        invoke-virtual {v0, v1, v2, p0}, Landroid/content/ContentResolver;->registerContentObserver(Landroid/net/Uri;ZLandroid/database/ContentObserver;)V
    
        [COLOR="Red"]const-string v1, "long_press_kill"
    
        invoke-static {v1}, Landroid/provider/Settings$System;->getUriFor(Ljava/lang/String;)Landroid/net/Uri;
    
        move-result-object v1
    
        invoke-virtual {v0, v1, v2, p0}, Landroid/content/ContentResolver;->registerContentObserver(Landroid/net/Uri;ZLandroid/database/ContentObserver;)V[/COLOR]
    
        .line 878
        const-string v1, "accelerometer_rotation"
    
        invoke-static {v1}, Landroid/provider/Settings$System;->getUriFor(Ljava/lang/String;)Landroid/net/Uri;
    
        move-result-object v1
    
        invoke-virtual {v0, v1, v2, p0}, Landroid/content/ContentResolver;->registerContentObserver(Landroid/net/Uri;ZLandroid/database/ContentObserver;)V

    Navigate to /smali/com/android/internal/policy/impl/PhoneWindowManager.smali
    Code:
    .field mAssistKeyLongPressed:Z
    
    .field mBackLongPress:Ljava/lang/Runnable;
    
    [COLOR="Red"].field mBackLongPressKill:Ljava/lang/Runnable;[/COLOR]
    
    .field mBlockCollapseStatusBar:Z
    
    .field mBootCompleteReceiver:Landroid/content/BroadcastReceiver;
    Code:
    .field mLongPressOnPowerBehavior:I
    
    .field mLongPressVibePattern:[J
    
    [COLOR="red"].field mLongPressKill:I[/COLOR]
    
    .field mMenuLongPress:Ljava/lang/Runnable;
    
    [COLOR="red"].field mMenuLongPressKill:Ljava/lang/Runnable;[/COLOR]
    
    .field mMirrorLinkDockEnablesAccelerometer:Z
    
    .field mMirrorLinkDockIntent:Landroid/content/Intent;

    .method public constructor <init>()V
    Code:
    new-instance v0, Lcom/android/internal/policy/impl/PhoneWindowManager$8;
    
        invoke-direct {v0, p0}, Lcom/android/internal/policy/impl/PhoneWindowManager$8;-><init>(Lcom/android/internal/policy/impl/PhoneWindowManager;)V
    
        iput-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mMenuLongPress:Ljava/lang/Runnable;
    
        [COLOR="red"]new-instance v0, Lcom/android/internal/policy/impl/PhoneWindowManager$LongPressKill;
    
        invoke-direct {v0, p0}, Lcom/android/internal/policy/impl/PhoneWindowManager$LongPressKill;-><init>(Lcom/android/internal/policy/impl/PhoneWindowManager;)V
    
        iput-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mMenuLongPressKill:Ljava/lang/Runnable;[/COLOR]
        
        .line 1494
        new-instance v0, Lcom/android/internal/policy/impl/PhoneWindowManager$9;
    
        invoke-direct {v0, p0}, Lcom/android/internal/policy/impl/PhoneWindowManager$9;-><init>(Lcom/android/internal/policy/impl/PhoneWindowManager;)V
    
        iput-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mBackLongPress:Ljava/lang/Runnable;
    
       [COLOR="red"] new-instance v0, Lcom/android/internal/policy/impl/PhoneWindowManager$LongPressKill;
    
        invoke-direct {v0, p0}, Lcom/android/internal/policy/impl/PhoneWindowManager$LongPressKill;-><init>(Lcom/android/internal/policy/impl/PhoneWindowManager;)V
    
        iput-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mBackLongPressKill:Ljava/lang/Runnable;[/COLOR]
    
        .line 1505
        new-instance v0, Lcom/android/internal/policy/impl/PhoneWindowManager$10;
    
        invoke-direct {v0, p0}, Lcom/android/internal/policy/impl/PhoneWindowManager$10;-><init>(Lcom/android/internal/policy/impl/PhoneWindowManager;)V
    
        iput-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mCameraLongPress:Ljava/lang/Runnable;

    Add the following methods after .method static getAudioService()Landroid/media/IAudioService;
    Code:
    .method private getBackKillRunnable()Ljava/lang/Runnable;
        .locals 1
    
        .prologue
        .line 69
        iget v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mLongPressKill:I
    
        if-eqz v0, :cond_0
    
        .line 70
        iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mBackLongPress:Ljava/lang/Runnable;
    
        .line 72
        :goto_0
        return-object v0
    
        :cond_0
        iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mBackLongPressKill:Ljava/lang/Runnable;
    
        goto :goto_0
    .end method
    
    .method private getMenuKillRunnable()Ljava/lang/Runnable;
        .locals 1
    
        .prologue
        .line 69
        iget v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mLongPressKill:I
    
        if-nez v0, :cond_0
    
        .line 70
        iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mMenuLongPress:Ljava/lang/Runnable;
    
        .line 72
        :goto_0
        return-object v0
    
        :cond_0
        iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mMenuLongPressKill:Ljava/lang/Runnable;
    
        goto :goto_0
    .end method

    .method public interceptKeyBeforeDispatching(Landroid/view/WindowManagerPolicy$WindowState;Landroid/view/KeyEvent;I)J
    Code:
        move-object/from16 v0, p0
    
        iget-object v0, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mHandler:Landroid/os/Handler;
    
        move-object/from16 v40, v0
    
        move-object/from16 v0, p0
        
        [COLOR="Blue"]iget-object v0, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mMenuLongPress:Ljava/lang/Runnable;
    
        move-object/from16 v41, v0[/COLOR]
    
        [COLOR="RED"]invoke-direct {v0}, Lcom/android/internal/policy/impl/PhoneWindowManager;->getMenuKillRunnable()Ljava/lang/Runnable;
    
        move-result-object v41[/COLOR]
    
        invoke-static {}, Landroid/view/ViewConfiguration;->getGlobalActionKeyTimeout()J
    
        move-result-wide v42
    
        invoke-virtual/range {v40 .. v43}, Landroid/os/Handler;->postDelayed(Ljava/lang/Runnable;J)Z
    Code:
    move-object/from16 v0, p0
    
        iget-object v0, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mHandler:Landroid/os/Handler;
    
        move-object/from16 v40, v0
    
        move-object/from16 v0, p0
    
        [COLOR="blue"]iget-object v0, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mMenuLongPress:Ljava/lang/Runnable;
    
        move-object/from16 v41, v0[/COLOR]
        
        [COLOR="Red"]invoke-direct {v0}, Lcom/android/internal/policy/impl/PhoneWindowManager;->getMenuKillRunnable()Ljava/lang/Runnable;
    
        move-result-object v41[/COLOR]
    
        invoke-virtual/range {v40 .. v41}, Landroid/os/Handler;->removeCallbacks(Ljava/lang/Runnable;)V
    Code:
        move-object/from16 v0, p0
    
        iget-object v0, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mHandler:Landroid/os/Handler;
    
        move-object/from16 v40, v0
    
        move-object/from16 v0, p0
        
        [COLOR="Blue"]iget-object v0, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mBackLongPress:Ljava/lang/Runnable;
    
        move-object/from16 v41, v0[/COLOR]
    
        [COLOR="red"]invoke-direct {v0}, Lcom/android/internal/policy/impl/PhoneWindowManager;->getBackKillRunnable()Ljava/lang/Runnable;
    
        move-result-object v41[/COLOR]
    
        invoke-static {}, Landroid/view/ViewConfiguration;->getGlobalActionKeyTimeout()J
    
        move-result-wide v42
    
        invoke-virtual/range {v40 .. v43}, Landroid/os/Handler;->postDelayed(Ljava/lang/Runnable;J)Z
    Code:
        move-object/from16 v0, p0
    
        iget-object v0, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mHandler:Landroid/os/Handler;
    
        move-object/from16 v40, v0
    
        move-object/from16 v0, p0
    
        [COLOR="Blue"]iget-object v0, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mBackLongPress:Ljava/lang/Runnable;
    
        move-object/from16 v41, v0[/COLOR]
        
        [COLOR="Red"]invoke-direct {v0}, Lcom/android/internal/policy/impl/PhoneWindowManager;->getBackKillRunnable()Ljava/lang/Runnable;
    
        move-result-object v41[/COLOR]
    
        invoke-virtual/range {v40 .. v41}, Landroid/os/Handler;->removeCallbacks(Ljava/lang/Runnable;)V

    .method public updateSettings()V
    Code:
        const-string v19, "incall_power_button_behavior"
    
        const/16 v20, 0x1
    
        move-object/from16 v0, v19
    
        move/from16 v1, v20
    
        invoke-static {v13, v0, v1}, Landroid/provider/Settings$Secure;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
    
        move-result v9
    
        [COLOR="red"]const-string v19, "long_press_kill"
    
        const/16 v20, 0x0
    
        move-object/from16 v0, v19
    
        move/from16 v1, v20
    
        invoke-static {v13, v0, v1}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
    
        move-result v3
        
        move-object/from16 v0, p0
    
        iput v3, v0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mLongPressKill:I[/COLOR]
    
        .line 2006
        .local v9, incallPowerBehavior:I
        const-string v19, "user_rotation"
    
        const/16 v20, 0x0
    
        move-object/from16 v0, v19
    
        move/from16 v1, v20
    
        invoke-static {v13, v0, v1}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I
    
        move-result v17

    Now download the file attached to this post and extract to your android.policy.jar folder.
    That's it. Compile and test!
    3
    awesome job man!
    working on this now, for VZW, SecSettings.apk so far is working great, policy is giving me some trouble, I think I found a few mistakes in the tut :)


    Navigate to /smali/com/android/settings/SoundSettings.smali

    I think should be

    Navigate to /smali/com/android/settings/DisplaySettings.smali

    and I got a lil confused in .method public constructor <init>()V

    I wasn't sure if I was suppose to add that in or replace it, I think it's suppose to be replaced, testing that now :)
    thank you so much again!

    not sure what I'm doing wrong but here is my policy.jar if u have time :)

    Haha, Updated the DisplaySettings.smali. Looking at you android.policy now.
    You're supposed to just add those lines. Don't remove the mBackLongPress and mMenuLongPress because we want each button to have two options, the regular option which is there by default and the new LongPressKill option. Hope that makes sense.
    2
    ..apktool

    you just rename it from android.policy.jar to android.policy.apk and decompile and recompile as like any other .apk, when done, rename back to android.policy.jar
    Google really is great for these types of questions

    Apktool works with .jar extensions

    Sent from my SAMSUNG-SGH-I747
    2
    I love you man! Thanks so much for this. I tried the toggle so many times in the past and every time it just killed on back every time. This worked perfect first time. Thanks again :D