Gönderen Konu: [Anlatım] Samsung Edge Panel Portlama Nasıl Yapılır  (Okunma sayısı 500 defa)

Çevrimdışı bysalihidriscan

  • Rom Geliştiricisi
  • ****
  • Beğenmeler
  • -Beğenme Sayısı: 77
  • -Beğenilme Sayısı: 328
  • İleti: 1255
  • İnanıyorsanız Korkmayın... [Ali-İmran 139.Ayet]
  • Rom: Stock
  • Tlf Modeli: Note7 FE
  • Tlf Yazılımı: Android 8.0.x
[Anlatım] Samsung Edge Panel Portlama Nasıl Yapılır
« : 30 Ağustos 2018, 00:41:29 »
Samsung 6.0.1 Cihazlarınız İçin Edge Panel Portlama

Anlatım Tarafımca Türkçeye Çevrilmiştir Ve Denenmiştir.

Bu anlatım ile sizde kendi cihazınız için port yapabilirsiniz...


Anlatım
Porta başlamadan önce gerekli araçları kurmalısınız apktool java jdk ve Stock roma port yapmak istiyorsanız Romunuzu DeOdex hale getirmelisiniz port Smali Metodları üzerinden çalıştığı için Stock Odex Romlarda çalışmayacaktır...

Tüm gereksinimleri kurduysanız başlıyalım..

Romunuzda Framework.jar Ve Services.jarı alın Ve Decompile edin..

Bölüm 1


Services.jara girin Ve şu yolu bulun.
Alıntı
smali/com/android/server/SystemServer.smali

Bu Smaliyi açın şu kodu arayın.
Kod: Linkleri görebilmek için üye olmalısınız. Kayıt Olun yada Giriş Yapın
const-string/jumbo v6, "spengestureservice"
Bu kodu arattığınız zaman karşınıza şu şekilde orjinal metin kodu çıkacak.
Alıntı
const-string/jumbo v6, "spengestureservice"

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

    move-object/from16 v0, v208

    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_7f
    .catch Ljava/lang/Throwable; {:try_start_7f .. :try_end_7f} :catch_50

    :goto_54
    :try_start_80
    const-string v6, "SystemServer"

    const-string v7, "SamplingProfiler Service"

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

    const-string/jumbo v6, "samplingprofiler"

    new-instance v7, Lcom/android/server/SamplingProfilerService;

    invoke-direct {v7, v5}, Lcom/android/server/SamplingProfilerService;-><init>(Landroid/content/Context;)V

    invoke-static {v6, v7}, Landroid/os/ServiceManager;->addService(Ljava/lang/String;Landroid/os/IBinder;)V

Bu kodu arattıktan sonra şu satırı arayıp bulacaz.
Alıntı
const-string v7, "SamplingProfiler Service"

Bu satırı bulduktan sonra şu kodları [:goto_54]  bu :goto_54 sayı sizde değişebilir hatta her romda değişebilir bende 54 sizde başka olabilir dikkatli olun bu :goto_54 kodunu nasıl bulacağınızı sormak istersenizde [SamplingProfiller] Kodunun 2 üst satırında bulunuyor bukodu bulduktan sonra bunun  bi altına ekleyecez ve kod ları ekledikten sonra muhakkak bir satır boşluk olsun eklenecek kodlar şunlardır.
Kod: Linkleri görebilmek için üye olmalısınız. Kayıt Olun yada Giriş Yapın
    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;


kodlar eklendikten sonra şu şekilde olacaktır.
Alıntı
const-string/jumbo v6, "spengestureservice"

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

    move-object/from16 v0, v208

    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_7f
    .catch Ljava/lang/Throwable; {:try_start_7f .. :try_end_7f} :catch_50

    :goto_54
    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;
   
   :try_start_80
    const-string v6, "SystemServer"

    const-string v7, "SamplingProfiler Service"

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

    const-string/jumbo v6, "samplingprofiler"

    new-instance v7, Lcom/android/server/SamplingProfilerService;

    invoke-direct {v7, v5}, Lcom/android/server/SamplingProfilerService;-><init>(Landroid/content/Context;)V

    invoke-static {v6, v7}, Landroid/os/ServiceManager;->addService(Ljava/lang/String;Landroid/os/IBinder;)V
[/B]

Kaydedip çıkış yapın.

2.Smali düzenlemesi şu Yola gidin Ve Smali dosyasını açın.
Kod: Linkleri görebilmek için üye olmalısınız. Kayıt Olun yada Giriş Yapın
smali/com/android/server/power/PowerManagerService.smali
Smali yi açtıktan sonra şu kodu arayın.
Kod: Linkleri görebilmek için üye olmalısınız. Kayıt Olun yada Giriş Yapın
const-string v8, "SEC_PRODUCT_FEATURE_COMMON_SUPPORT_COCKTAIL_FW: false"
son kısımda olan [false] yi "true" yapıp kaydedip çıkıyoruz.

3.Smali Düzenlemesi şu Yola gidin ve Smaliyi açın.
Kod: Linkleri görebilmek için üye olmalısınız. Kayıt Olun yada Giriş Yapın
smali/com/android/server/notification/NotificationManagerService$6.smali[/B]

Smaliyi açtıktan sonra şu kodu aratın.
Kod: Linkleri görebilmek için üye olmalısınız. Kayıt Olun yada Giriş Yapın
.method public enqueueEdgeNotification(Ljava/lang/String;Ljava/lang/String;ILandroid/os/Bundle;I)V
Bu yukarıdaki metodu buraya kadar olan kısmı seçin.
Kod: Linkleri görebilmek için üye olmalısınız. Kayıt Olun yada Giriş Yapın
.end method[/B]

bende orjınal metod şu şeklde.
Kod: Linkleri görebilmek için üye olmalısınız. Kayıt Olun yada Giriş Yapın
.method public enqueueEdgeNotification(Ljava/lang/String;Ljava/lang/String;ILandroid/os/Bundle;I)V
    .locals 0

    return-void
.end method



Ve metodu komple şu Metod ile değiştirin.
Kod: Linkleri görebilmek için üye olmalısınız. Kayıt Olun yada Giriş Yapın
.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

Aynı Smaliden çıkmadan Şu koduda aratın.
Kod: Linkleri görebilmek için üye olmalısınız. Kayıt Olun yada Giriş Yapın
.method public removeEdgeNotification(Ljava/lang/String;ILandroid/os/Bundle;I)V[/B]

Arattıktan sonra orjınal metin bende şu şeklde sizde başka şekilde olabilir.
Kod: Linkleri görebilmek için üye olmalısınız. Kayıt Olun yada Giriş Yapın
.method public removeEdgeNotification(Ljava/lang/String;ILandroid/os/Bundle;I)V
    .locals 0

    return-void
.end method

Bu Metoduda komple Şu Metod ile Değiştirin.
Kod: Linkleri görebilmek için üye olmalısınız. Kayıt Olun yada Giriş Yapın
.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
[/B]


Bölüm 2
Framework.jara Girin Ve Şu Yolu Bulun.

Kod: Linkleri görebilmek için üye olmalısınız. Kayıt Olun yada Giriş Yapın
smali/android/app/NotificationManager.smali[/B][/U]

Smali dosyasına girin Ve Şu kodu aratın.
Kod: Linkleri görebilmek için üye olmalısınız. Kayıt Olun yada Giriş Yapın
.method constructor <init>(Landroid/content/Context;Landroid/os/Handler;)V[/B]

Bu kodu aratııktan sonra orjınal metin şu şekilde olacaktır veya benzeri olabilir.
Bendeki orjınal metin şu şekilde.
Kod: Linkleri görebilmek için üye olmalısınız. Kayıt Olun yada Giriş Yapın
.method constructor <init>(Landroid/content/Context;Landroid/os/Handler;)V
    .locals 0

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

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

    return-void
.end method

Ve bu metod içinde şu satırlara dikkat edicez.
1.si eğer şu kodun altında
Kod: Linkleri görebilmek için üye olmalısınız. Kayıt Olun yada Giriş Yapın
.method constructor <init>(Landroid/content/Context;Landroid/os/Handler;)V
Şu kod varsa
Kod: Linkleri görebilmek için üye olmalısınız. Kayıt Olun yada Giriş Yapın
.registers 3
Varsa Eğer Şu kod ile Değiştirin Yoksa hiç dokunmayın.
Kod: Linkleri görebilmek için üye olmalısınız. Kayıt Olun yada Giriş Yapın
    .registers 4
Sonrasında şu satırı bulun.
Kod: Linkleri görebilmek için üye olmalısınız. Kayıt Olun yada Giriş Yapın
    iput-object p1, p0, Landroid/app/NotificationManager;->mContext:Landroid/content/Context;
Bu satırı bulduktan sonra bi alt satırını gene boş bırakıp şu kodları ekleyin.
Kod: Linkleri görebilmek için üye olmalısınız. Kayıt Olun yada Giriş Yapın
    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;

Ekledikten Sonra şu şekilde gözükecektir.
Kod: Linkleri görebilmek için üye olmalısınız. Kayıt Olun yada Giriş Yapın
.method constructor <init>(Landroid/content/Context;Landroid/os/Handler;)V
    .locals 0

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

    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;-><init>(Landroid/content/Context;)V

    iput-object v0, p0, Landroid/app/NotificationManager;->mEdgeNotificationManager:Landroid/app/NotificationManager$EdgeNotificationManager;
 
    return-void
.end method
[/B]

Smaliyi kaydedin Ve çıkış yapın.

2.Smali Düzenlemesi Şu yola gidin ve smaliyi açın.
Kod: Linkleri görebilmek için üye olmalısınız. Kayıt Olun yada Giriş Yapın
smali/android/app/SystemServiceRegistry.smali
Şu kodu aratın.
Kod: Linkleri görebilmek için üye olmalısınız. Kayıt Olun yada Giriş Yapın
    const-string/jumbo v0, "multiwindow_facade"
Bu metodda şu kodu aratın.
Kod: Linkleri görebilmek için üye olmalısınız. Kayıt Olun yada Giriş Yapın
invoke-static {v0, v1, v2}, Landroid/app/SystemServiceRegistry;->registerService(Ljava/lang/String;Ljava/lang/Class;Landroid/app/SystemServiceRegistry$ServiceFetcher;)V
Ve bi alt satırı gene boş olsun ve şu kodları ekleyin.
Kod: Linkleri görebilmek için üye olmalısınız. Kayıt Olun yada Giriş Yapın
    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

kodlar eklendikten sonra şu şekilde gözükecektir.
Kod: Linkleri görebilmek için üye olmalısınız. Kayıt Olun yada Giriş Yapın
    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

    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
 
    const-string/jumbo v0, "spengestureservice"

Kodları ekledikten sonra bi alt satırda verilen smali dosyasını şu yola atın.
Kod: Linkleri görebilmek için üye olmalısınız. Kayıt Olun yada Giriş Yapın
smali/android/app/
Smali linki: Linkleri görebilmek için üye olmalısınız. Kayıt Olun yada Giriş Yapın]edgepanelsmali.rar[/URL]

Ve framework.jar ve Services.jarı kapatın artık framework portunuz hazır.

Cihazınıza Ait System/etc bölümünden floating_feature.xml dosyasını alın notepad ile açın ve şu satırları arayın yoksa kendiniz ekleyin.
Kod: Linkleri görebilmek için üye olmalısınız. Kayıt Olun yada Giriş Yapın
    <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>

Bu kodları şu şekilde ayarlayın.
Kod: Linkleri görebilmek için üye olmalısınız. Kayıt Olun yada Giriş Yapın
    <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>
[/B][/B]

Kaydedip çıkın.

Flaşlanabilir Zip Olarak Oluşturma
Öncelikle portu tam olarak bitirmek için edge panel uygulamalarına ve permissions izinlerine sahip olmamız gerekir edge panel uygulamaları Note7 Stock romundan Portlanmıştır MultiLanguagedir.
EdgePanelApps Link: Linkleri görebilmek için üye olmalısınız. Kayıt Olun yada Giriş Yapın]EdgePanelApps.zip[/URL]
Zip Flaşlayıcı Link: Linkleri görebilmek için üye olmalısınız. Kayıt Olun yada Giriş Yapın]EdgePanelPort.zip[/URL]

Zip flaşlayıcıyı indirin masaüstüne çıkartın edge panel uygulamalarını indirin zipten çıkarıp zip flaşlayıcının içindeki system klasörüne atın system klasörünün içine framework adlı klasör oluşturup portlamış olduğunuz frameworkları içine atın ve "floating_feature.xml" dosyanızıda etc nin içine atın ve zip olarak sıkıştırın artık flashlanabilir zipinizde hazır ve twrp den flashlayabilirsiniz.


Not:Edge panel bizim cihazımıza ait olmadığı için genel portlardaki sorunlar olabilir ancak çok kullanışlı olduğu kesindir.




« Son Düzenleme: 30 Ağustos 2018, 00:48:09 Gönderen: bysalihidriscan »
Soru Ve Sorunlarınız İçin Telegram:@bysalihidriscan

 

Güncel Konular

Note 3 N900 N9000Q Modem Arşivi Gönderen: yutassa
[19 Ocak 2019, 20:55:25]


G900F Galaxy S5 G900FXXU1ANH6 Hollanda 4.4.2 Factory Firmware (4 Dosyalı) Gönderen: ialpin
[19 Ocak 2019, 12:58:16]


[N910C/N910H][UNOFFICIAL] LineageOS 14.1 (RESURRECTED) Gönderen: onurmemo77
[19 Ocak 2019, 12:33:02]


Odin ile Yazılım(Firmware) Güncelleme Nasıl Yapılır? Gönderen: amato
[19 Ocak 2019, 11:10:09]


KÜRESEL HACKER TEHDİDİ ŞANTAJI Gönderen: ORHAN AFACAN
[19 Ocak 2019, 11:03:59]


[TedyBeaR][DreamUX] Full Note5 Port Rom[N910C/H] Gönderen: Bubuse
[19 Ocak 2019, 00:29:54]


n910x Galaxy Note 4 Custom Rom Tercihleriniz ve Önerileriniz Gönderen: orhanankara06
[19 Ocak 2019, 00:20:49]


S6 Edge DRK Hatası Çözümü Gönderen: quesse
[18 Ocak 2019, 19:05:44]


N910CQ Galaxy Note 4 Türkiye - N910CXXS2DQHG_6.0.1 Resmi - Tek Dosya_16.08.2017 Gönderen: andan44
[17 Ocak 2019, 17:04:04]


(Rom) LG G3 D850 Marshmallow Stock 6.0 Rom Yükleme Gönderen: jibrahim
[17 Ocak 2019, 16:54:47]


S6 920I imei atılmış cihaza odin ile stok rom atma Gönderen: ibrahim281
[16 Ocak 2019, 15:24:51]


samsung c5 firmware Gönderen: coskunsaglam
[15 Ocak 2019, 13:35:34]


Bilgi verilmeden konu iptali. Gönderen: Haemovit
[14 Ocak 2019, 05:42:39]


Türknet Geçtim İyimi Kötümü Ettim-Müşteri Hizmetleri sorunu Gönderen: Haemovit
[14 Ocak 2019, 05:37:59]


N920C Galaxy Note 5 CF-Auto-Root (Tek Yükleme ile Root İşlemi) Gönderen: sunliqht
[14 Ocak 2019, 00:05:37]


s7 edge oreo 8.0 da kamera hatası Gönderen: Wandeta
[13 Ocak 2019, 19:22:06]


N9000/N9000Q Rom Tercihleriniz ve Önerileriniz Gönderen: eminci1
[13 Ocak 2019, 04:21:43]


Note4 İçin Rehber Ve Mesaj Portu Arıyorum Gönderen: Marble
[12 Ocak 2019, 19:37:05]


[ROM][8.0][TW][N920C/I/G/S/L/K/8]Floyd N7FE Port Gönderen: mehmetkaya900544
[12 Ocak 2019, 18:20:16]


Hotspot, Wifi İnternet Paylaşımını Ücretsiz Kullanın Gönderen: sawgent
[11 Ocak 2019, 22:31:14]