[GUIDE] How To Add Contacts, Tasks, And Apps Edge Panel | Galaxy Note 5 | Marshmallow

Search This thread

ruky23

Member
Mar 17, 2013
18
1
Thunder Bay
Well my custom rom phronesis v6.5 already has edge panel with apps and another with contacts. I would like to add other panels like reminders or tasks like with S7. Is this possible?
 

Allooosh98

Senior Member
Nov 11, 2015
378
3,723
Baniyas
★HOW TO ADD CONTACTS, TASKS, AND APPS EDGE PANEL★

Thanks a lot @jovy23 for guide:good::)

Now Edge Panels are working on my Galaxy S5 G900H
only after porting framework files of S7 Edge to S5 G900H it started to work

Thank you so much:D:good::good:


Bro,Can u tell me what are the S7 framework files that you port it to make edge screen work??
My bug is like ur.....I get FC when I swipe edge bar in my A7 2016 MM (Exynos)


Edit: Fixed
 

Attachments

  • 20160818_172121.jpg
    20160818_172121.jpg
    61.1 KB · Views: 787
  • Screenshot_20160807-224821.png
    Screenshot_20160807-224821.png
    61.7 KB · Views: 775
Last edited:

olcifaraga

Member
Jul 19, 2014
13
4
İzmir
I'm working on stock deodexed N910F BTU DPH TW MM Rom...
I found all methods to replace but in my methods .line numbers different from what it described in OP.
for example in OP it's .line 2023 while in my corresponding line it's .line 2033
so should I directly copy paste or do I need to edit them If so how?

.method public removeEdgeNotification(Ljava/lang/String;ILandroid/os/Bundle;I)V
.registers 5
.param p1, "pkg" # Ljava/lang/String;
.param p2, "id" # I
.param p3, "extra" # Landroid/os/Bundle;
.param p4, "userId" # I

.prologue
.line 2044 // 2034 in OP
return-void
.end method

Thanks for guide and help...
 
Last edited:

tdunham

Inactive Recognized Contributor
Jun 21, 2008
13,686
36,462
TampaBay
I'm working on stock deodexed N910F BTU DPH TW MM Rom...
I found all methods to replace but in my methods .line numbers different from what it described in OP.
for example in OP it's .line 2023 while in my corresponding line it's .line 2033
so should I directly copy paste or do I need to edit them If so how?



Thanks for guide and help...
ignore the line numbers, they are useless and even if you copy code in with line numbers not in sequence, the system won't care.
 
  • Like
Reactions: olcifaraga

HuyNology

Senior Member
Apr 25, 2016
242
58
Re-edit finally it worked
 

Attachments

  • framework.jar
    7.8 MB · Views: 53
  • services.jar
    7 MB · Views: 45
  • floating_feature.xml
    36.5 KB · Views: 53
Last edited:

tanthuychivietnam

Senior Member
May 6, 2014
688
717
30
Vinh
Edge peopel not work

Tks sir with your guide
I tested on stock 6.0.1 note rom deodex
All work
But people edge not work
People edge apk not f.c
But i can't add contact to edge
I try will note 7 and note 5 contact but it still not work
I think my services.jar erro
Plz help me!
Tks you
 

maxx35000

Senior Member
Jan 14, 2012
1,517
2,821
Rennes
Here is a modified apk with the Edge Lighting feature hidden in the menu.
I chose to take the easy way out, modifying layout for the menu.
It doesn't work for us anyway.
I think the other choices do work but don't have the time to check it all out so if something else needs to go, just let me know.

Hi ,

ineed help i folow this guide to mod my Framework and services

but when i start my phone calandar and task edge fc

when i go to setting and tap on edge pannel doesn't open and fc

I tested on stock 6.0.1 J710FN rom deodex

View attachment framework.zip

thank's a lot
 

methoddon1

Senior Member
Mar 22, 2013
3,233
1,115
44
Bobruisk,New York,Moscow
galaxy A5 2017 (a520f) Marshmallow, grace ux... after many hours of reading, learning and trying I came to a point of this (photo) but won't go further. hitting + icon (to add contacts), I go back to home screen.. and if I hit settings icons and enter panels settings, when touching + to add from there, simply nothing happens. can anyone suggest a file I'm missing?! or a command... I have edited and placed :
floating_feature.xml
com.sec.feature.coctail.panel
com.sec.feature.peopl.edge
services.jar
framework.jar
the missing .smali file
all necessary apk's
tried different contacts apk from ports, but this is where I stock. if anyone has an opinion, it would be much appreciated.

Sent from Galaxy Beast A5 (aka Ferrari) Powered by ProtaX Rom
 

yash92duster

Senior Member
Jan 31, 2015
13,138
15,836
Chennai
galaxy A5 2017 (a520f) Marshmallow, grace ux... after many hours of reading, learning and trying I came to a point of this (photo) but won't go further. hitting + icon (to add contacts), I go back to home screen.. and if I hit settings icons and enter panels settings, when touching + to add from there, simply nothing happens. can anyone suggest a file I'm missing?! or a command... I have edited and placed :
floating_feature.xml
com.sec.feature.coctail.panel
com.sec.feature.peopl.edge
services.jar
framework.jar
the missing .smali file
all necessary apk's
tried different contacts apk from ports, but this is where I stock. if anyone has an opinion, it would be much appreciated.

Sent from Galaxy Beast A5 (aka Ferrari) Powered by ProtaX Rom
Change
people stripe.apk in privapp

In some roms just with that app alone works
But in some roms that people stripe apk needs some libs

I Cannot upload the files

If You can check my rom called
" wanted rom v13 " in galaxy s5 exynos sections for the files

Try them it will work I think

Extract the people stipe folder it has that app and some Libs
It should work
 

methoddon1

Senior Member
Mar 22, 2013
3,233
1,115
44
Bobruisk,New York,Moscow
Change
people stripe.apk in privapp

In some roms just with that app alone works
But in some roms that people stripe apk needs some libs

I Cannot upload the files

If You can check my rom called
" wanted rom v13 " in galaxy s5 exynos sections for the files

Try them it will work I think

Extract the people stipe folder it has that app and some Libs
It should work
Thanx a lot brother for these few words... yes, in addition to that forgot about modified core-libart file but then I have read your post and decided to try 4 files people stripe from different roms before downloading your rom.... on second try it worked... Note 7 port for Note 5...

thanx a lot again brother, good luck to you in this beautiful Android world.

Sent from Galaxy Beast A5 (aka Ferrari) Powered by ProtaX Rom
 
  • Like
Reactions: yash92duster

tdunham

Inactive Recognized Contributor
Jun 21, 2008
13,686
36,462
TampaBay
If I upload the files can you please make the mod.

This is a pretty involved modification. You need to find someone with your exact phone and firmware revision/build willing to help that can install and test it before releasing it.
Your other alternative is to try one of the playstore apps that offer this feature. Free to try but last time I looked, they cost a dollar or two after the trial period runs out.
 

methoddon1

Senior Member
Mar 22, 2013
3,233
1,115
44
Bobruisk,New York,Moscow
little off the subject but can anyone point to the right direction... looking port/activate Pop-up View shortcut as well... anyone with knowledge?! thanx.

edit: Done!!! the easiest thing I ever did.

but can anyone point to a tutorial for Advanced Power Menu and all apps in multi window?! thanx.

Sent from Galaxy Beast A5 (aka Ferrari) Powered by MethLabRom
 
Last edited:

Top Liked Posts

  • There are no posts matching your filters.
  • 47
    Hello to all Developers and XDA members! I have come here to give you a guide on how to add contacts, tasks, and apps edge panel on your Galaxy Note 5 device and maybe some other devices as well so here is how you can do it!

    What Is Required...
    ★ First you need to have experience and know how to decompile/recompile apks with Apktools, apkmanager, smali, and baksmali
    ★ Have 7-zip installed onto your computer/laptop
    ★ Make sure you have Notepad++ also installed!

    ★HOW TO ADD CONTACTS, TASKS, AND APPS EDGE PANEL★

    WHAT DOES THIS MOD DO: This mod will let you add contacts, tasks, and apps edge panel on your non edge/edge+ Samsung device. (On Marshmallow Firmware).

    ★ First go into your system/etc folder and find the "floating_feature.xml"

    Now open up "floating_feature.xml" with notepad++ for editing.

    SEARCH FOR:

    Code:
        <SEC_FLOATING_FEATURE_COMMON_CONFIG_EDGE></SEC_FLOATING_FEATURE_COMMON_CONFIG_EDGE>
        <SEC_FLOATING_FEATURE_COMMON_CONFIG_EDGE_STRIPE></SEC_FLOATING_FEATURE_COMMON_CONFIG_EDGE_STRIPE>

    NOW CHANGE THEM TO:

    Code:
        <SEC_FLOATING_FEATURE_COMMON_CONFIG_EDGE>people,task,circle,panel</SEC_FLOATING_FEATURE_COMMON_CONFIG_EDGE>
        <SEC_FLOATING_FEATURE_COMMON_CONFIG_EDGE_STRIPE>-1</SEC_FLOATING_FEATURE_COMMON_CONFIG_EDGE_STRIPE>

    ★ Now go into your system/framework folder and take out your "services.jar"
    ★ Now decompile/baksmali services.jar, then navigate to:

    smali/com/android/server/SystemServer.smali

    Now open up "SystemServer.smali" with notepad++ for editing.

    Now for this part of this guide what I have highlighted in "GREEN" text is what you have to find using Notepad++, And what you see in "BLUE" are the line(s) you have to make changes to:

    SEARCH FOR:

    Code:
    [COLOR="Green"]    const-string/jumbo v6, "spengestureservice"[/COLOR]

    YOU SHOULD SEE SOMETHING LIKE THIS:

    Code:
        const-string/jumbo v6, "spengestureservice"
    
        new-instance v7, Lcom/android/server/smartclip/SpenGestureManagerService;
    
        move-object/from16 v0, v206
    
        invoke-direct {v7, v5, v0}, Lcom/android/server/smartclip/SpenGestureManagerService;-><init>(Landroid/content/Context;Lcom/android/server/wm/WindowManagerService;)V
    
        invoke-static {v6, v7}, Landroid/os/ServiceManager;->addService(Ljava/lang/String;Landroid/os/IBinder;)V
        :try_end_d83
        .catch Ljava/lang/Throwable; {:try_start_d6f .. :try_end_d83} :catch_1747
    
        .line 2033
        :goto_d83
        :try_start_d83
        const-string v6, "SystemServer"
    
        const-string v7, "SamplingProfiler Service"
    
        invoke-static {v6, v7}, Landroid/util/Slog;->i(Ljava/lang/String;Ljava/lang/String;)I

    NOW ADD NEW LINES IN BLUE, MAKE SURE YOU PUT THEM IN THE RIGHT PLACE IN BETWEEN :GOTO AND :TRY_START:

    Code:
        const-string/jumbo v6, "spengestureservice"
    
        new-instance v7, Lcom/android/server/smartclip/SpenGestureManagerService;
    
        move-object/from16 v0, v206
    
        invoke-direct {v7, v5, v0}, Lcom/android/server/smartclip/SpenGestureManagerService;-><init>(Landroid/content/Context;Lcom/android/server/wm/WindowManagerService;)V
    
        invoke-static {v6, v7}, Landroid/os/ServiceManager;->addService(Ljava/lang/String;Landroid/os/IBinder;)V
        :try_end_d83
        .catch Ljava/lang/Throwable; {:try_start_d6f .. :try_end_d83} :catch_1747
    
        .line 2033
        :goto_d83
    [COLOR="Blue"]    move-object/from16 v0, p0
    
        iget-object v6, v0, Lcom/android/server/SystemServer;->mSystemServiceManager:Lcom/android/server/SystemServiceManager;
    
        const-string v7, "com.android.server.cocktailbar.CocktailBarManagerService"
    
        invoke-virtual {v6, v7}, Lcom/android/server/SystemServiceManager;->startService(Ljava/lang/String;)Lcom/android/server/SystemService;[/COLOR]
    
        :try_start_d83
        const-string v6, "SystemServer"
    
        const-string v7, "SamplingProfiler Service"
    
        invoke-static {v6, v7}, Landroid/util/Slog;->i(Ljava/lang/String;Ljava/lang/String;)I

    Now navigate to:

    smali/com/android/server/power/PowerManagerService.smali

    SEARCH FOR:

    Code:
    [COLOR="Green"]    const-string v8, "SEC_PRODUCT_FEATURE_COMMON_SUPPORT_COCKTAIL_FW: false"[/COLOR]

    NOW MAKE CHANGES THAT YOU SEE IN BLUE:

    Code:
    [COLOR="Green"]    const-string v8, "SEC_PRODUCT_FEATURE_COMMON_SUPPORT_COCKTAIL_FW: [COLOR="Blue"]true[/COLOR]"[/COLOR]

    Now navigate to:

    smali/com/android/server/notification/NotificationManagerService$6.smali

    SEARCH FOR:

    Code:
    [COLOR="Green"].method public enqueueEdgeNotification(Ljava/lang/String;Ljava/lang/String;ILandroid/os/Bundle;I)V[/COLOR]

    IT SHOULD LOOK SOMETHING LIKE THIS:

    Code:
    .method public enqueueEdgeNotification(Ljava/lang/String;Ljava/lang/String;ILandroid/os/Bundle;I)V
        .registers 6
        .param p1, "pkg"    # Ljava/lang/String;
        .param p2, "opPkg"    # Ljava/lang/String;
        .param p3, "id"    # I
        .param p4, "extra"    # Landroid/os/Bundle;
        .param p5, "userId"    # I
    
        .prologue
        .line 2023
        return-void
    .end method

    NOW REMOVE THAT WHOLE METHOD AND ADD NEW METHOD THAT YOU SEE BELOW IN BLUE:

    Code:
    [COLOR="Blue"].method public enqueueEdgeNotification(Ljava/lang/String;Ljava/lang/String;ILandroid/os/Bundle;I)V
        .registers 14
        .param p1, "pkg"    # Ljava/lang/String;
        .param p2, "opPkg"    # Ljava/lang/String;
        .param p3, "id"    # I
        .param p4, "extra"    # Landroid/os/Bundle;
        .param p5, "userId"    # I
    
        .prologue
        .line 2020
        # invokes: Lcom/android/server/notification/NotificationManagerService;->checkCallerIsSystemOrSameApp(Ljava/lang/String;)V
        invoke-static {p1}, Lcom/android/server/notification/NotificationManagerService;->access$3400(Ljava/lang/String;)V
    
        .line 2021
        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
    
        .line 2023
        return-void
    .end method[/COLOR]

    NOW SEARCH FOR:

    Code:
    [COLOR="Green"].method public removeEdgeNotification(Ljava/lang/String;ILandroid/os/Bundle;I)V[/COLOR]

    IT SHOULD LOOK SOMETHING LIKE THIS:

    Code:
    .method public removeEdgeNotification(Ljava/lang/String;ILandroid/os/Bundle;I)V
        .registers 5
        .param p1, "pkg"    # Ljava/lang/String;
        .param p2, "id"    # I
        .param p3, "extra"    # Landroid/os/Bundle;
        .param p4, "userId"    # I
    
        .prologue
        .line 2034
        return-void
    .end method

    NOW REMOVE THAT WHOLE METHOD AND ADD NEW METHOD THAT YOU SEE BELOW IN BLUE:

    Code:
    [COLOR="Blue"].method public removeEdgeNotification(Ljava/lang/String;ILandroid/os/Bundle;I)V
        .registers 12
        .param p1, "pkg"    # Ljava/lang/String;
        .param p2, "id"    # I
        .param p3, "extra"    # Landroid/os/Bundle;
        .param p4, "userId"    # I
    
        .prologue
        .line 2028
        # invokes: Lcom/android/server/notification/NotificationManagerService;->checkCallerIsSystemOrSameApp(Ljava/lang/String;)V
        invoke-static {p1}, Lcom/android/server/notification/NotificationManagerService;->access$3400(Ljava/lang/String;)V
    
        .line 2029
        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
    
        .line 2032
        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
    
        .line 2034
        return-void
    .end method[/COLOR]

    Once done now smali/recompile your services.jar and your done with that part!

    ★ Now go into your system/framework folder and take out your "framework.jar"
    ★ Now decompile/baksmali framework.jar, then navigate to:

    smali/android/app/NotificationManager.smali

    SEARCH FOR:

    Code:
    [COLOR="Green"].method constructor <init>(Landroid/content/Context;Landroid/os/Handler;)V[/COLOR]

    IT SHOULD LOOK SOMETHING LIKE THIS:

    Code:
    .method constructor <init>(Landroid/content/Context;Landroid/os/Handler;)V
        .registers 3
        .param p1, "context"    # Landroid/content/Context;
        .param p2, "handler"    # Landroid/os/Handler;
    
        .prologue
        .line 184
        invoke-direct {p0}, Ljava/lang/Object;-><init>()V
    
        .line 185
        iput-object p1, p0, Landroid/app/NotificationManager;->mContext:Landroid/content/Context;
    
        .line 192
        return-void
    .end method

    NOW ADD NEW LINES AND MAKE CHANGES IN BLUE, MAKE SURE YOU PUT THEM IN THE RIGHT PLACE:

    Code:
    .method constructor <init>(Landroid/content/Context;Landroid/os/Handler;)V
        [COLOR="Blue"].registers 4[/COLOR]
        .param p1, "context"    # Landroid/content/Context;
        .param p2, "handler"    # Landroid/os/Handler;
    
        .prologue
        .line 184
        invoke-direct {p0}, Ljava/lang/Object;-><init>()V
    
        .line 185
        iput-object p1, p0, Landroid/app/NotificationManager;->mContext:Landroid/content/Context;
    
    [COLOR="Blue"]    new-instance v0, Landroid/app/NotificationManager$EdgeNotificationManager;
    
        invoke-direct {v0, p1}, Landroid/app/NotificationManager$EdgeNotificationManager;-><init>(Landroid/content/Context;)V
    
        iput-object v0, p0, Landroid/app/NotificationManager;->mEdgeNotificationManager:Landroid/app/NotificationManager$EdgeNotificationManager;[/COLOR]
    
        .line 192
        return-void
    .end method

    Now navigate to:

    smali/android/app/SystemServiceRegistry.smali

    SEARCH FOR:

    Code:
    [COLOR="Green"]    const-string/jumbo v0, "multiwindow_facade"[/COLOR]

    IT SHOULD LOOK SOMETHING LIKE THIS:

    Code:
        .line 1011
        const-string/jumbo v0, "multiwindow_facade"
    
        const-class v1, Lcom/samsung/android/multiwindow/MultiWindowFacade;
    
        new-instance v2, Landroid/app/SystemServiceRegistry$83;
    
        invoke-direct {v2}, Landroid/app/SystemServiceRegistry$83;-><init>()V
    
        invoke-static {v0, v1, v2}, Landroid/app/SystemServiceRegistry;->registerService(Ljava/lang/String;Ljava/lang/Class;Landroid/app/SystemServiceRegistry$ServiceFetcher;)V
    
        .line 1046
        const-string/jumbo v0, "spengestureservice"

    NOW ADD NEW LINES IN BLUE, MAKE SURE YOU PUT THEM IN THE RIGHT PLACE:

    Code:
        .line 1011
        const-string/jumbo v0, "multiwindow_facade"
    
        const-class v1, Lcom/samsung/android/multiwindow/MultiWindowFacade;
    
        new-instance v2, Landroid/app/SystemServiceRegistry$83;
    
        invoke-direct {v2}, Landroid/app/SystemServiceRegistry$83;-><init>()V
    
        invoke-static {v0, v1, v2}, Landroid/app/SystemServiceRegistry;->registerService(Ljava/lang/String;Ljava/lang/Class;Landroid/app/SystemServiceRegistry$ServiceFetcher;)V
    
    [COLOR="Blue"]    const-string v0, "CocktailBarService"
    
        const-class v1, Lcom/samsung/android/cocktailbar/CocktailBarManager;
    
        new-instance v2, Landroid/app/SystemServiceRegistry$85;
    
        invoke-direct {v2}, Landroid/app/SystemServiceRegistry$85;-><init>()V
    
        invoke-static {v0, v1, v2}, Landroid/app/SystemServiceRegistry;->registerService(Ljava/lang/String;Ljava/lang/Class;Landroid/app/SystemServiceRegistry$ServiceFetcher;)V[/COLOR]
    
        .line 1046
        const-string/jumbo v0, "spengestureservice"

    Now you will need to do is add the SystemServiceRegistry$85.smali file from the attachment below called "framework.jar Contacts, Tasks, And Apps Edge Panel Smali Files.rar" and add it into smali/android/app/. Once done now smali/recompile your framework.jar and your DONE! The last thing you will need to do is add the contacts, tasks, and apps edge panel system files with the apks and also the system/etc/permissions xml files that you will be needing to add into your rom so download link will be below as well.

    CONTACTS, TASKS, AND APPS EDGE PANEL SYSTEM FILES DOWNLOAD LINK - https://www.androidfilehost.com/?fid=24545070682210404

    ONLY BUGS ARE NONE EDGE/EDGE+ USERS WONT BE ABLE TO SEE EDGE FEEDS, EDGE LIGHTNING, AND OTHER EDGE/EDGE+ FEATURES DUE TO THE DEVICE HAVING A DIFFERENT DISPLAY. IF EDGE/EDGE+ USERS ARE FLASHING/INSTALLING A NON EDGE/EDGE+ CUSTOM ROM YOU WILL NOT BE ABLE TO HAVE THOSE FEATURES ALSO BECAUSE THIS MOD ONLY ADDS CONTACTS, TASKS, AND APPS EDGE PANEL TO THE ROM OTHER DISPLAY FEATURES ARE STILL A WORK IN PROGRESS AND A LITTLE BIT HARDER TO DO BECAUSE THERE ARE MANY COCKTAILBAR CODE IN THE EDGE/EDGE+ STOCK FRAMEWORKS THAT THE NON EDGE/EDGE+ SAMSUNG DEVICES DO NOT HAVE.
    8
    Ok everyone the guide based in the OP section is how to add the Contacts, Tasks, And Apps Edge Panel mod on your none edge/edge+ samsung device. The thing im trying to get working is the edge feeds feature. That option will only work for the edge/edge+ samsung device users and not for the note 5 users because of different displays and kernel. So when a user who owns a edge device flashes a note 5 custom rom they will not have that feature (edge feeds). In order for note 5 developers to get it to work i have found all the differential smali files that hopefully will get every edge/edge+ feature fully working for those specific device users while on a note 5 custom rom who have the changes in them. I have placed an attachment below with stock note 5 smali files (that doesn't have cocktailbar code) then the stock edge+ smali files (that have cocktailbar code) placed in it so you will have to implement the cocktailbar code to the note 5 smalis by comparing one file with the other based from both devices together and see what changes were made. Hopefully we can all get this fully working together.

    NOTE #1 - The changes are only in the framework.jar and services.jar framework files so we will have to work with both of those frameworks in order to get all edge features working.
    NOTE #2 - In some of the note 5 smalis there is methods with "vrflinger" in them that the edge+ doesn't have. So just copy and pasting some of the files won't work. The locations with the vrflinger code in them are listed below and are only in services.jar:

    services.jar
    smali/com/android/server/am/ActivityManagerService.smali
    smali/com/android/server/am/ActivityRecord.smali
    smali/com/android/server/policy/PhoneWindowManager.smali
    smali/com/android/server/wm/WindowManagerService.smali
    smali/com/android/server/wm/WindowStateAnimator.smali
    6
    Here is a modified apk with the Edge Lighting feature hidden in the menu.
    I chose to take the easy way out, modifying layout for the menu.
    It doesn't work for us anyway.
    I think the other choices do work but don't have the time to check it all out so if something else needs to go, just let me know.
    4
    Bootlooping here, found a real typo this time.

    @jovy23
    smali\com\android\server\notification\NotificationManagerService$6.smali
    Please change new method. Correction is in RED
    Code:
    .method public removeEdgeNotification(Ljava/lang/String;ILandroid/os/Bundle;I)V
    .
    .
    .
        # invokes: Lcom/android/server/notification/NotificationManagerService;->checkCallerIsSystemOrSameApp(Ljava/lang/String;)V
        invoke-static {p1}, Lcom/android/server/notification/NotificationManagerService;->[COLOR="Red"]access$3400[/COLOR](Ljava/lang/String;)V
    original was access$3000 which does NOT call checkCallerIsSystemOrSameApp(Ljava/lang/String;)V

    Edit:


    NOTE:
    This access$xxxx may cause issues for some smali trying to port this feature.
    You may want to post our access$3400 as example and state that is must match THEIR parent smali.

    Addendum:
    This is what access$3400 looks like in our NotificationManagerService.smali. The call in $6 needs to match.

    Code:
    .method static synthetic access$3400(Ljava/lang/String;)V
        .locals 0
    
        invoke-static {p0}, Lcom/android/server/notification/NotificationManagerService;->checkCallerIsSystemOrSameApp(Ljava/lang/String;)V
    
        return-void
    .end method