[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,194
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,561
  • Screenshot_2015-09-20-02-09-44.jpg
    Screenshot_2015-09-20-02-09-44.jpg
    83.6 KB · Views: 23,295
  • Screenshot_2015-09-20-02-14-41.jpg
    Screenshot_2015-09-20-02-14-41.jpg
    101.7 KB · Views: 23,277
Last edited:

thereassaad

Recognized Contributor
Aug 22, 2013
7,619
9,710
Bierut

suman_pal78

Senior Member
Nov 19, 2009
336
90
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? ;)