[MOD 5.1.1][UPDATE 2015-11-09] ENABLE EDGE FEATURES FROM S6 edge+

Status
Not open for further replies.
Search This thread

Androidwizzard

Inactive Recognized Contributor
Nov 22, 2013
4,271
7,191
263
EDGE CONTACTS - EDGE APPS

This mod is ported from S6 edge + and the features mentioned above work and replace partly the good old toolbox.
Working for sure on N920I+C, 5.1.1

for other variants please report or follow this guide HOW TO MAKE IT FOR YOUR DEVICE thx @thereassaad

UPLOADING NEW VERSION SOON
Changelog:

More variants supported now: C+I+G and maybe some others too (soon)
People stripe

DOWNLOAD
EDIT: Seems to fail for T-Mobile variant atm, so you may follow above guidance.

First release:



INSTALLATION:
WORKING ON DEODEXED ROM
take a backup first - just in case!
Flash through custom recovery and enjoy :good:

BUGS:
In fact I haven't found any
except Note 5 not having edge screen
so nightclock and newsline don't work

CREDITS:
@thereassaad
 

Attachments

  • Screenshot_2015-09-20-02-06-14.png
    Screenshot_2015-09-20-02-06-14.png
    184.5 KB · Views: 22,551
  • Screenshot_2015-09-20-02-09-44.jpg
    Screenshot_2015-09-20-02-09-44.jpg
    83.6 KB · Views: 23,285
  • Screenshot_2015-09-20-02-14-41.jpg
    Screenshot_2015-09-20-02-14-41.jpg
    101.7 KB · Views: 23,267
Last edited:

suman_pal78

Senior Member
Nov 19, 2009
336
90
0
Kolkata
EDGE CONTACTS - EDGE APPS

This mod is ported from S6 edge + and the features mentioned above work and replace partly the good old toolbox.

DOWNLOAD


INSTALLATION:
ONLY WORKING ON DEODEXED ROM
Flash through custom recovery and enjoy :good:

BUGS:
In fact I haven't found any
except Note 5 not having edge screen
so nightclock and newsline don't work

CREDITS:
@thereassaad

Confirmed Working with N9208 duos
 
  • Like
Reactions: qqq888
Status
Not open for further replies.

Top Liked Posts

  • There are no posts matching your filters.
  • 42
    EDGE CONTACTS - EDGE APPS

    This mod is ported from S6 edge + and the features mentioned above work and replace partly the good old toolbox.
    Working for sure on N920I+C, 5.1.1

    for other variants please report or follow this guide HOW TO MAKE IT FOR YOUR DEVICE thx @thereassaad

    UPLOADING NEW VERSION SOON
    Changelog:

    More variants supported now: C+I+G and maybe some others too (soon)
    People stripe

    DOWNLOAD
    EDIT: Seems to fail for T-Mobile variant atm, so you may follow above guidance.

    First release:



    INSTALLATION:
    WORKING ON DEODEXED ROM
    take a backup first - just in case!
    Flash through custom recovery and enjoy :good:

    BUGS:
    In fact I haven't found any
    except Note 5 not having edge screen
    so nightclock and newsline don't work

    CREDITS:
    @thereassaad
    16
    @tdunham & All of u guys who's want edge features fully working on ur devices & roms etc so here the small guide , , i write this guide from my phone because my laptop its on service center anyway

    In services.jar

    move-object/from16 v0, p0

    iget-object v5, v0, Lcom/android/server/SystemServer;->mSystemServiceManager:Lcom/android/server/SystemServiceManager;

    const-string v6, "com.android.server.cocktailbar.CocktailBarManagerService"

    invoke-virtual {v5, v6}, Lcom/android/server/SystemServiceManager;->startService(Ljava/lang/String;)Lcom/android/server/SystemService;

    :try_start_6e
    const-string v5, "SystemServer"

    const-string v6, "QuickConnect Service"

    invoke-static {v5, v6}, Landroid/util/Slog;->i(Ljava/lang/String;Ljava/lang/String;)I

    find const-string v6, "QuickConnect Service"

    Add cocktail above "QuickConnect Service"

    In SystemServer.smal

    & u can get it from services.jar in file zip on OP

    & here for sms & missed call notification

    For this u need framework.jar


    Exactly this 2 smali u can get it from framework.jar

    NotificationManager.smali

    NotificationManager$EdgeNotificationManager.smali

    https://mega.nz/#!dIYghTDB!B4BtXKOgns5PY_gdV5uurIwC9I0iOmFWF8em_RfMLfY

    & this how to get it

    Open framework.jar/smali/android/app/NotificationManager.smali

    Replace function*.method constructor (Landroid/content/Context;Landroid/os/Handler;)V

    .method constructor (Landroid/content/Context;Landroid/os/Handler;)V
    .locals 1
    .param p1, "context" # Landroid/content/Context;
    .param p2, "handler"# Landroid/os/Handler;

    .prologue
    .line 113
    invoke-direct {p0}, Ljava/lang/Object;->()V

    .line 114
    iput-object p1, p0, Landroid/app/NotificationManager;->mContext:Landroid/content/Context;

    new-instance v0, Landroid/app/NotificationManager$EdgeNotificationManager;

    invoke-direct {v0, p1}, Landroid/app/NotificationManager$EdgeNotificationManager;->(Landroid/content/Context;)V

    iput-object v0, p0, Landroid/app/NotificationManager;->mEdgeNotificationManager:Landroid/app/NotificationManager$EdgeNotificationManager;

    .line 121
    return-void
    .end method

    & remember u need to set this as 0 in flaoting_feature.xml in system/etc see ss

    dcba54920a1cd3bbdfb0a6702884eb4e.jpg


    & hope this small guide help u all ...


    Some ss

    6923027c78cc15ead53ce3de1dc112ae.jpg


    93005f463533d3134678754a0e7d759b.jpg


    6c965327d1385d0c61d919b1982af2a7.jpg



    Done u have it now good good



    Sent from my SM-N920C using Tapatalk
    7
    To those who still have edge notifications not working try to apply these changes:

    We have to work on NotificationManagerService$6.smali in Services.jar

    Replace the whole method:

    Code:
    .method public enqueueEdgeNotification(Ljava/lang/String;Ljava/lang/String;ILandroid/os/Bundle;I)V

    with:

    Code:
    .method public enqueueEdgeNotification(Ljava/lang/String;Ljava/lang/String;ILandroid/os/Bundle;I)V
        .registers 14
    
        # invokes: Lcom/android/server/notification/NotificationManagerService;->checkCallerIsSystemOrSameApp(Ljava/lang/String;)V
        invoke-static {p1}, Lcom/android/server/notification/NotificationManagerService;->access$3000(Ljava/lang/String;)V
    
        iget-object v0, p0, Lcom/android/server/notification/NotificationManagerService$6;->this$0:Lcom/android/server/notification/NotificationManagerService;
    
        invoke-static {}, Landroid/os/Binder;->getCallingUid()I
    
        move-result v3
    
        invoke-static {}, Landroid/os/Binder;->getCallingPid()I
    
        move-result v4
    
        move-object v1, p1
    
        move-object v2, p2
    
        move v5, p3
    
        move-object v6, p4
    
        move v7, p5
    
        invoke-virtual/range {v0 .. v7}, Lcom/android/server/notification/NotificationManagerService;->enqueueEdgeNotificationInternal(Ljava/lang/String;Ljava/lang/String;IIILandroid/os/Bundle;I)V
    
        return-void
    .end method


    again repleace the following method:

    Code:
    .method public removeEdgeNotification(Ljava/lang/String;ILandroid/os/Bundle;I)V

    with

    Code:
    .method public removeEdgeNotification(Ljava/lang/String;ILandroid/os/Bundle;I)V
        .registers 12
    
        # invokes: Lcom/android/server/notification/NotificationManagerService;->checkCallerIsSystemOrSameApp(Ljava/lang/String;)V
        invoke-static {p1}, Lcom/android/server/notification/NotificationManagerService;->access$3000(Ljava/lang/String;)V
    
        invoke-static {}, Landroid/os/Binder;->getCallingPid()I
    
        move-result v0
    
        invoke-static {}, Landroid/os/Binder;->getCallingUid()I
    
        move-result v1
    
        const/4 v3, 0x1
    
        const/4 v4, 0x0
    
        const-string v5, "cancelNotificationWithTag"
    
        move v2, p4
    
        move-object v6, p1
    
        invoke-static/range {v0 .. v6}, Landroid/app/ActivityManager;->handleIncomingUser(IIIZZLjava/lang/String;Ljava/lang/String;)I
    
        move-result p4
    
        iget-object v0, p0, Lcom/android/server/notification/NotificationManagerService$6;->this$0:Lcom/android/server/notification/NotificationManagerService;
    
        invoke-static {}, Landroid/os/Binder;->getCallingUid()I
    
        move-result v1
    
        invoke-static {}, Landroid/os/Binder;->getCallingPid()I
    
        move-result v2
    
        move-object v3, p1
    
        move v4, p2
    
        move-object v5, p3
    
        move v6, p4
    
        invoke-virtual/range {v0 .. v6}, Lcom/android/server/notification/NotificationManagerService;->removeEdgeNotificationInternal(IILjava/lang/String;ILandroid/os/Bundle;I)V
    
        return-void
    .end method
    6
    Here is the guide for removing menu items.
    We are working in CocktailBarService.apk smali.
    \CocktailBarService\smali\com\samsung\android\app\cocktailbarservice\settings\EdgeScreenSettingsMain.smali
    Remove the sections in RED dependent on which options you want to remove.
    Note the commented lines within that point to public values for the menu items.
    Code:
    .method private init()V
    .
    .
    .
    [COLOR="red"]    iget-object v6, p0, Lcom/samsung/android/app/cocktailbarservice/settings/EdgeScreenSettingsMain;->mItems:Ljava/util/ArrayList;
    
        new-instance v7, Lcom/samsung/android/app/cocktailbarservice/settings/EdgeScreenSettingsMain$Item;
    
        invoke-virtual {p0}, Lcom/samsung/android/app/cocktailbarservice/settings/EdgeScreenSettingsMain;->getResources()Landroid/content/res/Resources;
    
        move-result-object v8
    
        const v9, 0x7f0a0098  ## Edge Lighting menu item
    
        invoke-virtual {v8, v9}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String;
    
        move-result-object v8
    
        const/4 v9, 0x4
    
        const/4 v10, -0x1
    
        invoke-direct {v7, v8, v5, v9, v10}, Lcom/samsung/android/app/cocktailbarservice/settings/EdgeScreenSettingsMain$Item;-><init>(Ljava/lang/String;Landroid/content/Intent;II)V
    
        invoke-virtual {v6, v7}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
    [/COLOR]
    .
    .
    .
    [COLOR="red"]    iget-object v6, p0, Lcom/samsung/android/app/cocktailbarservice/settings/EdgeScreenSettingsMain;->mItems:Ljava/util/ArrayList;
    
        new-instance v7, Lcom/samsung/android/app/cocktailbarservice/settings/EdgeScreenSettingsMain$Item;
    
        invoke-virtual {p0}, Lcom/samsung/android/app/cocktailbarservice/settings/EdgeScreenSettingsMain;->getResources()Landroid/content/res/Resources;
    
        move-result-object v8
    
        const v9, 0x7f0a0089  ## Information Stream menu item
    
        invoke-virtual {v8, v9}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String;
    
        move-result-object v8
    
        new-instance v9, Landroid/content/Intent;
    
        const-class v10, Lcom/samsung/android/app/cocktailbarservice/settings/InformationStream;
    
        invoke-direct {v9, p0, v10}, Landroid/content/Intent;-><init>(Landroid/content/Context;Ljava/lang/Class;)V
    
        const/4 v10, 0x7
    
        const/4 v11, -0x1
    
        invoke-direct {v7, v8, v9, v10, v11}, Lcom/samsung/android/app/cocktailbarservice/settings/EdgeScreenSettingsMain$Item;-><init>(Ljava/lang/String;Landroid/content/Intent;II)V
    
        invoke-virtual {v6, v7}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
    [/COLOR]
    
    [B]NOTE:  Above item and next one are together in smali but I am separating them out to show different menu item.[/B]
    
    [COLOR="red"]    iget-object v6, p0, Lcom/samsung/android/app/cocktailbarservice/settings/EdgeScreenSettingsMain;->mItems:Ljava/util/ArrayList;
    
        new-instance v7, Lcom/samsung/android/app/cocktailbarservice/settings/EdgeScreenSettingsMain$Item;
    
        invoke-virtual {p0}, Lcom/samsung/android/app/cocktailbarservice/settings/EdgeScreenSettingsMain;->getResources()Landroid/content/res/Resources;
    
        move-result-object v8
    
        const v9, 0x7f0a000d  ## Night Clock menu item
    
        invoke-virtual {v8, v9}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String;
    
        move-result-object v8
    
        new-instance v9, Landroid/content/Intent;
    
        const-class v10, Lcom/samsung/android/app/cocktailbarservice/settings/NightClockZero;
    
        invoke-direct {v9, p0, v10}, Landroid/content/Intent;-><init>(Landroid/content/Context;Ljava/lang/Class;)V
    
        const/4 v10, 0x5
    
        const/4 v11, -0x1
    
        invoke-direct {v7, v8, v9, v10, v11}, Lcom/samsung/android/app/cocktailbarservice/settings/EdgeScreenSettingsMain$Item;-><init>(Ljava/lang/String;Landroid/content/Intent;II)V
    
        invoke-virtual {v6, v7}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
    [/COLOR]
    .
    .
    .
    [COLOR="red"]    iget-object v6, p0, Lcom/samsung/android/app/cocktailbarservice/settings/EdgeScreenSettingsMain;->mItems:Ljava/util/ArrayList;
    
        new-instance v7, Lcom/samsung/android/app/cocktailbarservice/settings/EdgeScreenSettingsMain$Item;
    
        invoke-virtual {p0}, Lcom/samsung/android/app/cocktailbarservice/settings/EdgeScreenSettingsMain;->getResources()Landroid/content/res/Resources;
    
        move-result-object v8
    
        const v9, 0x7f0a00b2  ## Edge Screen Notification menu item
    
        invoke-virtual {v8, v9}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String;
    
        move-result-object v8
    
        const/16 v9, 0x8
    
        const/4 v10, -0x1
    
        invoke-direct {v7, v8, v2, v9, v10}, Lcom/samsung/android/app/cocktailbarservice/settings/EdgeScreenSettingsMain$Item;-><init>(Ljava/lang/String;Landroid/content/Intent;II)V
    
        invoke-virtual {v6, v7}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
    [/COLOR]

    Attachments:
    v1 = Edge lighting, Information stream, Night clock items removed
    v2 = same as above plus Edge screen notifications menu item removed

    Note:
    I added version 2 for those of you that do not receive notifications.
    No point in having the menu item in there if notifications aren't working right? ;)
Our Apps
Get our official app!
The best way to access XDA on your phone
Nav Gestures
Add swipe gestures to any Android
One Handed Mode
Eases uses one hand with your phone