MIUI Patchrom Hata Çözümleri

0
241

MIUI Patchrom düzenleme işlemlerini gerçekleştirirken hatalarla karşılaşabilirsiniz. Bu hataları nasıl çözebileceğinizi anlatıyoruz.

Burada anlattığımız işlemleri gerçekleştirirken karşınıza hatalar çıkabilir. Şimdi bu hataları anlayıp çözmeye çalışmanın zamanı geldi.

Hatalar

Patchrom bir yamayı yapamadığı zaman hangi dosyanın yaması uygulanamadıysa o dosyanın uygulanamayan yamasını göstermek için  /klasörismi/cihazismi/temp/ klasöründe oluşturur. Örnek olarak eğer services.jar dosyasında bir yama uygulanamadıysa klasörismi/cihazismi/temp/services.jar.out klasöründe bulunabilir.

Örnek olarak, “reject” dosyası “klasörismi/cihazismi/temp/reject/android.policy.jar.out/smali/com/android/internal/policy/impl” klasöründe bulunuyorsa orijinal dosya “patchrom/device/android.policy.jar.out/smali/com/android/internal/policy/impl” bu klasörde bulunacaktır.

Yama Bilgilerinin Anlaşılması

Şimdi bulunan bilgilerinizle reject ve orijinal dosyaların yerlerini açın, reject dosyası aşağıdaki gibi görünecektir:

*** PhoneWindowManager.smali 2015-09-09 11:46:13.541852561 -0300
--- PhoneWindowManager.smali 2015-09-09 11:47:07.349851413 -0300
***************
*** 393,404 ****
  
  .field private mPowerKeyTriggered:Z
  
! .field private final mPowerLongPress:Ljava/lang/Runnable;
  
  .field mPowerManager:Landroid/os/PowerManager;
  
  .field mPreloadedRecentApps:Z
  
  .field mRecentAppsDialog:Lcom/android/internal/policy/impl/RecentApplicationsDialog;
  
  .field mRecentAppsDialogHeldModifiers:I
--- 395,408 ----
  
  .field private mPowerKeyTriggered:Z
  
! .field private mPowerLongPress:Ljava/lang/Runnable;
  
  .field mPowerManager:Landroid/os/PowerManager;
  
  .field mPreloadedRecentApps:Z
  
+ .field private final mQuickBootLock:Ljava/lang/Object;
+ 
  .field mRecentAppsDialog:Lcom/android/internal/policy/impl/RecentApplicationsDialog;
  
  .field mRecentAppsDialogHeldModifiers:I

Sonraki adım sembolleri ve bu sembollerin anlamlarını anlamak:

  • ***XX,XX***: Bu semboller bize yamanın kodları hangi satırlarda beklediğini gösteriyor, bizim durumumuzda bu 393 ve 404 numaralı satırlar arası olacaktır.
  • —XX,XX–: Bu semboller bize kodların yamadan sonra hangi satırlarda beklendiğini gösteriyor, bizim durumumuzda bu 395 ve 408 numaralı satırlar arası olacaktır.

Ama bu satırlar çok fazla birşey ifade etmiyor daha önemli olan şey bu sembolleri anlamak:

    • asteriks’in altında bulunan satırlar (***) bu kodların yamadan önce göründüğü
    • hypens’in altında bulunan satırlar (—-) bu kodların yamadan sonra nasıl görüneceğini gösteriyor
reject alıyoruz çünkü yama kodların beklendiği satırları bulamıyor ve buda yamanın başarısız olmasının asıl nedeni

Ve şimdi yapmamız gereken bu kodları kendimiz düzenlememiz.

Bunu yapabilmemiz için ise bu sembollerin anlamlarını anlamamız gerekiyor:

  • + sembolü satırın yama tarafından eklendiğini gösterir
  • – sembolü satırın yama tarafından kaldırıldığını gösterir
  • ! sembolü satırın yama tarafından değiştirildiğini gösterir

Bu kadar bilgi yeterli olacaktır, hadi şimdi rejectleri düzeltelim

Yamaların Düzeltilmesi

Biz şimdi bir örnek vereceğiz ve bunu düzelteceğiz. Sizde bizim uyguladığımız gibi kendi hatalarınızda bu yöntemi uygulayabilirsiniz.

İlk olarak reject dosyalarına bakma zamanı

*** 393,404 ****
  
  .field private mPowerKeyTriggered:Z
  
! .field private final mPowerLongPress:Ljava/lang/Runnable;
  
  .field mPowerManager:Landroid/os/PowerManager;
  
  .field mPreloadedRecentApps:Z
  
  .field mRecentAppsDialog:Lcom/android/internal/policy/impl/RecentApplicationsDialog;
  
  .field mRecentAppsDialogHeldModifiers:I

Şimdide bu satırlar için orijinal dosyaya bakma zamanı. Ama aklınızda bulunsun bu satırlar biraz farklı olabilir, ama bizim kanımızca bunlar doğru satırlar:

.field private mPowerKeyTriggered:Z

.field private final mPowerLongPress:Ljava/lang/Runnable;

.field mPowerManager:Landroid/os/PowerManager;

.field mPreloadedRecentApps:Z

.field private mPressOnAppSwitchBehavior:I

.field private mPressOnAssistBehavior:I

.field private mPressOnMenuBehavior:I

.field private final mQuickBootLock:Ljava/lang/Object;

.field private final mQuickBootPowerLongPress:Ljava/lang/Runnable;

GÖrdüğünüz üzere farklı sıradalar, ve bazıları görüntülenmemiş. Şimdide yamadan sonra olması gerekilen kısma odaklanalım:

--- 395,408 ----
  
  .field private mPowerKeyTriggered:Z
  
! .field private mPowerLongPress:Ljava/lang/Runnable;
  
  .field mPowerManager:Landroid/os/PowerManager;
  
  .field mPreloadedRecentApps:Z
  
+ .field private final mQuickBootLock:Ljava/lang/Object;
+ 
  .field mRecentAppsDialog:Lcom/android/internal/policy/impl/RecentApplicationsDialog;
  
  .field mRecentAppsDialogHeldModifiers:I

Bu bize bu satırı değiştirip

field private final mPowerLongPress:Ljava/lang/Runnable;

Bu satır yapmamız gerktiğini anlatıyor:

.field private mPowerLongPress:Ljava/lang/Runnable;

Ek olarak bu satırıda eklememiz gerekiyor:

.field private final mQuickBootLock:Ljava/lang/Object;

Manuel olarak yamalamadan sonra dosya bu şekilde görünecektir:

field private mPowerKeyTriggered:Z

.field private mPowerLongPress:Ljava/lang/Runnable;

.field mPowerManager:Landroid/os/PowerManager;

.field mPreloadedRecentApps:Z

.field private mPressOnAppSwitchBehavior:I

.field private mPressOnAssistBehavior:I

.field private mPressOnMenuBehavior:I

.field private final mQuickBootLock:Ljava/lang/Object;

.field private final mQuickBootPowerLongPress:Ljava/lang/Runnable;

Bu şekilde görünecektir.

Son olarak değişikliklerinizi kayıt edin ve bir sonraki reject dosyasına geçin.