[Galaxy S 5 Themes and Apps] yash92duster:
Hello Xda Users,

This Guide is for Adding Edge Panels To Latest Samsung UX Based Roms

What's Required:

*Apktool for Decompiling/Recompiling jars

*Notepad++ For Editing Smalis

Steps:

1. Open your " system/etc/floating_feature.xml " with Notepad++

And

Find The Following 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>

REPLACE IT WITH:

<SEC_FLOATING_FEATURE_COMMON_CONFIG_EDGE>[COLOR="DarkGreen"]people,task,circle,panel[/COLOR]</SEC_FLOATING_FEATURE_COMMON_CONFIG_EDGE>
<SEC_FLOATING_FEATURE_COMMON_CONFIG_EDGE_STRIPE>[COLOR="darkgreen"]-1[/COLOR]</SEC_FLOATING_FEATURE_COMMON_CONFIG_EDGE_STRIPE>

Now you must use ApkTool to decompile/Make Changes to smalis/Recompile

*Use Tickle My Android Apktool or Any other Apktool

2. Now Decompile your " Services.jar "

Find Red Text and Add Green Lines:

LOCATE TO:

Open up "SystemServer.smali" with Notepad++

SEARCH FOR:

[COLOR="Red"]const-string/jumbo v6, "spengestureservice"[/COLOR]

YOU SHOULD SEE SOMETHING LIKE THIS:

const-string/jumbo v6, "spengestureservice"

new-instance v7, Lcom/android/server/smartclip/SpenGestureManagerService;

move-object/from16 v0, v218

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_85
.catch Ljava/lang/Throwable; {:try_start_85 .. :try_end_85} :catch_53

:goto_57

const-string v6, "2"

invoke-static {v6}, Ljava/lang/Integer;->valueOf(Ljava/lang/String;)Ljava/lang/Integer;

move-result-object v6

invoke-virtual {v6}, Ljava/lang/Integer;->intValue()I

move-result v192

const/4 v6, 0x2

move/from16 v0, v192

if-lt v0, v6, :cond_32

move-object/from16 v0, p0

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

const-string v7, "com.android.server.aod.AODManagerService"

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

:cond_32
:try_start_86
const-string v6, "SystemServer"

Now add the Green lines:

const-string/jumbo v6, "spengestureservice"

new-instance v7, Lcom/android/server/smartclip/SpenGestureManagerService;

move-object/from16 v0, v218

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_85
.catch Ljava/lang/Throwable; {:try_start_85 .. :try_end_85} :catch_53

:goto_57
[COLOR="DarkGreen"]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]

const-string v6, "2"

invoke-static {v6}, Ljava/lang/Integer;->valueOf(Ljava/lang/String;)Ljava/lang/Integer;

move-result-object v6

invoke-virtual {v6}, Ljava/lang/Integer;->intValue()I

move-result v192

const/4 v6, 0x2

move/from16 v0, v192

if-lt v0, v6, :cond_32

move-object/from16 v0, p0

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

const-string v7, "com.android.server.aod.AODManagerService"

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

:cond_32
:try_start_86
const-string v6, "SystemServer"

LOCATE TO:

SEARCH FOR:

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

REPLACE IT WITH:

[COLOR="darkgreen"]const-string v8, "SEC_PRODUCT_FEATURE_COMMON_SUPPORT_COCKTAIL_FW: true"[/COLOR]

LOCATE TO:

SEARCH FOR:

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

YOU SHOULD SEE SOMETHING LIKE THIS:

.method public enqueueEdgeNotification(Ljava/lang/String;Ljava/lang/String;ILandroid/os/Bundle;I)V
.locals 8
return-void
.end method

Now Replace the Whole method with this one:

[COLOR="darkgreen"].method public enqueueEdgeNotification(Ljava/lang/String;Ljava/lang/String;ILandroid/os/Bundle;I)V
.locals 8

# invokes: Lcom/android/server/notification/NotificationManagerService;->checkCallerIsSystemOrSameApp(Ljava/lang/String;)V
invoke-static {p1}, Lcom/android/server/notification/NotificationManagerService;->access$3700(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[/COLOR]

In Same Smali

SEARCH FOR:

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

YOU SHOULD SEE SOMETHING LIKE THIS:

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

return-void
.end method

Now Replace the Whole method with this one:

[COLOR="darkgreen"].method public removeEdgeNotification(Ljava/lang/String;ILandroid/os/Bundle;I)V
.locals 7

# invokes: Lcom/android/server/notification/NotificationManagerService;->checkCallerIsSystemOrSameApp(Ljava/lang/String;)V
invoke-static {p1}, Lcom/android/server/notification/NotificationManagerService;->access$3700(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[/COLOR]

Done

3. Now Recompile your " services.jar "

4. *Now Decompile your " Framework.jar "

LOCATE TO:

SEARCH FOR:

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

YOU SHOULD SEE SOMETHING LIKE THIS:

.method constructor <init>(Landroid/content/Context;Landroid/os/Handler;)V
.locals 3

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

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

return-void
.end method

Now add the Green lines:

.method constructor <init>(Landroid/content/Context;Landroid/os/Handler;)V
[COLOR="DarkGreen"].locals 4[/COLOR]

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

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

[COLOR="darkgreen"]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]

return-void
.end method

LOCATE TO:

SEARCH FOR:

[COLOR="Red"]const-string/jumbo v1, "multiwindow_facade"[/COLOR]

YOU SHOULD SEE SOMETHING LIKE THIS:

const-string/jumbo v1, "multiwindow_facade"

const-class v2, Lcom/samsung/android/multiwindow/MultiWindowFacade;

new-instance v3, Landroid/app/SystemServiceRegistry$83;

invoke-direct {v3}, Landroid/app/SystemServiceRegistry$83;-><init>()V

invoke-static {v1, v2, v3}, Landroid/app/SystemServiceRegistry;->registerService(Ljava/lang/String;Ljava/lang/Class;Landroid/app/SystemServiceRegistry$ServiceFetcher;)V

const-string v1, "2"

invoke-static {v1}, Ljava/lang/Integer;->valueOf(Ljava/lang/String;)Ljava/lang/Integer;

move-result-object v1

invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I

move-result v0

const/4 v1, 0x2

if-lt v0, v1, :cond_1

const-string v1, "AODManagerService"

const-class v2, Lcom/samsung/android/aod/AODManager;

new-instance v3, Landroid/app/SystemServiceRegistry$87;

invoke-direct {v3}, Landroid/app/SystemServiceRegistry$87;-><init>()V

invoke-static {v1, v2, v3}, Landroid/app/SystemServiceRegistry;->registerService(Ljava/lang/String;Ljava/lang/Class;Landroid/app/SystemServiceRegistry$ServiceFetcher;)V

:cond_1
const-string/jumbo v1, "spengestureservice"

Now add the Green lines:

const-string/jumbo v1, "multiwindow_facade"

const-class v2, Lcom/samsung/android/multiwindow/MultiWindowFacade;

new-instance v3, Landroid/app/SystemServiceRegistry$83;

invoke-direct {v3}, Landroid/app/SystemServiceRegistry$83;-><init>()V

invoke-static {v1, v2, v3}, Landroid/app/SystemServiceRegistry;->registerService(Ljava/lang/String;Ljava/lang/Class;Landroid/app/SystemServiceRegistry$ServiceFetcher;)V

[COLOR="darkgreen"]const-string v1, "CocktailBarService"

const-class v2, Lcom/samsung/android/cocktailbar/CocktailBarManager;

new-instance v3, Landroid/app/SystemServiceRegistry$85;

invoke-direct {v3}, Landroid/app/SystemServiceRegistry$85;-><init>()V

invoke-static {v1, v2, v3}, Landroid/app/SystemServiceRegistry;->registerService(Ljava/lang/String;Ljava/lang/Class;Landroid/app/SystemServiceRegistry$ServiceFetcher;)V[/COLOR]

const-string v1, "2"

invoke-static {v1}, Ljava/lang/Integer;->valueOf(Ljava/lang/String;)Ljava/lang/Integer;

move-result-object v1

invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I

move-result v0

const/4 v1, 0x2

if-lt v0, v1, :cond_1

const-string v1, "AODManagerService"

const-class v2, Lcom/samsung/android/aod/AODManager;

new-instance v3, Landroid/app/SystemServiceRegistry$87;

invoke-direct {v3}, Landroid/app/SystemServiceRegistry$87;-><init>()V

invoke-static {v1, v2, v3}, Landroid/app/SystemServiceRegistry;->registerService(Ljava/lang/String;Ljava/lang/Class;Landroid/app/SystemServiceRegistry$ServiceFetcher;)V

:cond_1
const-string/jumbo v1, "spengestureservice"

5. Now Download

The " SystemServiceRegistry$85.smali " and

Add it to " framework.jar\smali\android\app "

Download From Here ->> View attachment 3987570

Done

6. Now Recompile your " framework.jar "

7. Download the Attached

System Folder For " Edge Apks, Permissions Xmls "

Add them to correct location into your System Folder

Download From Here ->> https://www.androidfilehost.com/?fid=457095661767134120

Thank you