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

Çevrimdışı bysalihidriscan

  • Rom Geliştiricisi
  • ****
  • Beğenmeler
  • -Beğenme Sayısı: 69
  • -Beğenilme Sayısı: 295
  • İleti: 1197
  • İnanıyorsanız Korkmayın... [Ali-İmran 139.Ayet]
  • Rom: SuperStock Rom
  • Tlf Modeli: Note 4-N910CQ
  • Tlf Yazılımı: Bada
[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

G925FQ Galaxy S6 Edge TUR-G925FXXU6ERD3_7.0_Factory_Firmware_16_05_2018 Gönderen: ibrahim281
[Bugün, 11:50:58]


A5 2017 CSC kısmını tekrar TUR yapamıyorum Gönderen: Nikolayco
[Bugün, 08:21:27]


Sm-g925fq rom yükleme hatası. Gönderen: abdyasar
[Bugün, 06:53:55]


[SuperStock]Rom[Note5&Note4][N910C~N910CQ] [XXS2DQHG&XXS3BQA9] Gönderen: lumina
[Bugün, 06:21:03]


G920FQ Galaxy S6 Türkiye - G920FXXU6ERD3_7.0_Factory_Firmware_16_05_2018 Gönderen: abdyasar
[24 Eylül 2018, 23:36:45]


S8 950F STOK ROM YÜKLEME HAKKINDA Gönderen: yifcike
[24 Eylül 2018, 22:47:24]


Odin ile Yazılım(Firmware) Güncelleme Nasıl Yapılır? Gönderen: hanbaba
[24 Eylül 2018, 17:04:41]


N900/N9000Q Note 3 N9000QXXUEBOL1 Türkiye Lollipop 5.0 Factory Firmware Gönderen: abdyasar
[24 Eylül 2018, 06:51:50]


G955F Galaxy S8 Plus TUR-G955FXXU1AQH3_7.0_Resmi & Factory_Firmware_16_08_2017 Gönderen: mlh9393
[24 Eylül 2018, 04:44:59]


Türknet Geçtim İyimi Kötümü Ettim-Müşteri Hizmetleri sorunu Gönderen: devrialem
[23 Eylül 2018, 23:48:12]


[PORT] [Note5] [Stabil] Arama Ekranı Ve Rehber Stock Odex/Deodex Romlar İçin Gönderen: Bilgehanntr
[23 Eylül 2018, 20:36:41]


N910CQ Galaxy Note 4 Türkiye - N910CXXS2DQHG_6.0.1_Factory_Firmware_09.09.2017 Gönderen: abdyasar
[23 Eylül 2018, 12:49:13]


N910CQ Galaxy Note 4 N910CXXU2DPF8 Türkiye 6.0.1 Factory Firmware (4 Dosyalı) Gönderen: abdyasar
[23 Eylül 2018, 12:04:02]


N920C Galaxy Note 5 TUR - N920CXXS5CRH1_7.0_Factory_Firmware_27_08_2018 Gönderen: mines2312323
[22 Eylül 2018, 20:11:52]


Galaxy Tab 7'' P1000 Root Yöntemi-CWM yükleme Gönderen: 06bozkurtum
[22 Eylül 2018, 05:50:38]


Aksiyon kamerasının görüntüsünü telefondan nasıl ters çevirebilirim? Gönderen: sawgent
[20 Eylül 2018, 17:38:35]


Şebeke gözükmüyor Gönderen: xprice16
[20 Eylül 2018, 09:55:27]


[FINAL][ROM][I9500][5.0.2][S6/N5/S7 Port]Antorya Slim S.E.(v.11.0)(06.12.2016) Gönderen: ibrahim 118
[19 Eylül 2018, 09:00:06]


[ROM][7.0-Nougat][GraceUX][TW] Refined Nougat Port N7 Fan Edition [N910C/H] Gönderen: lumina
[18 Eylül 2018, 22:58:19]


WiFi_Odin Kullanarak Gear S3'e Firmware Yükleme, Güncelleme Rehberi Gönderen: h.aydin
[18 Eylül 2018, 17:02:05]