Android için TWRP Bağlantı Noktası Nasıl Yapılır

, bunun gibi daha küçük bir ağaçla çalışmayı deneyebilirsiniz Minimal Manifest TWRP . Bununla birlikte, bu manifestin izin verdiğinden daha fazla depoya ihtiyaç duyacağınız durumlar olabilir.



Derlemeden önce önemli not: Herhangi bir bayrak eklerseniz veya değiştirirseniz, yeniden derlemeden önce temizlemeniz (veya bozucu yapmanız) gerekir, aksi takdirde bayrak değişiklikleriniz dahil edilmeyecektir!

TWRP kaynak kodunu aldıktan sonra, belirli cihazınız için bazı yapı bayraklarını değiştirmemiz gerekiyor. Cihazınız için BoardConfig.mk dosyasını bulun - bu genellikle şurada bulunur: cihazlar / üretici / kod adı (örneğin, cihazlar / lge / hammerhead / BoardConfig.mk)



Kart yapılandırmasının mimari ve platform ayarlarını içermesi gerekir - bunlar genellikle zaten dahildir Eğer başka birinin cihaz yapılandırmasını kullanıyorsunuz. Ancak kendinizinkini oluşturduysanız, bunları eklemeniz gerekir. Bunun nedeni, bunlar olmadan, kurtarma önyüklemesinin ayrılabilir olması ve ekranınızdaki TeamWin logosunun art arda yanıp sönmesidir.



Bayraklar BoardConfig.mk'nin altına #twrp başlığı altında yerleştirilmelidir.



İçin herşey cihazlar, TWRP'ye hangi temanın kullanılacağını bildirmeniz gerekir. TW_THEME bayrağı eski DEVICE_RESOLUTION bayrağı yerine kullanılır; bu, TWRP'nin artık herhangi bir temayı genişletmek için ölçeklendirme kullandığı anlamına gelir.

Seçenekleriniz şunlardır: portrait_hdpi, portrait_mdpi, landscape_hdpi, landscape_mdpi ve watch_mdpi. Portre modu için büyük olasılıkla 720 × 1280 ve üzeri hdpi temasını istersiniz, ancak yatay cihazlar için 1280 × 720 ve üzeri ile gidin.

Bu nedenle, yapı bayrağı bölümünüz + tema bayrağınız şöyle görünmelidir:



#twrp

TW_THEME: = portrait_hdpi

Bu bölüme dahil etmek isteyeceğiniz bazı ek yapı işaretleri (XDA forumlarına verilen krediler):

  • RECOVERY_SDCARD_ON_DATA: = true (bu, depolama için bu klasöre sahip cihazlarda / data / media'nın uygun şekilde işlenmesini sağlar (çoğu Honeycomb ve orijinal olarak Galaxy Nexus gibi ICS ile birlikte gelen cihazlar) Bu bayrak, bu tür cihazlar için gerekli değildir. bu bayrağı tanımlamayın ve fstab'nizde / sdcard, / internal_sd, / internal_sdcard veya / emmc'ye herhangi bir referans eklemeyin, sonra otomatik olarak aygıtın taklit edilmiş depolama kullandığını varsayacağız.)
  • BOARD_HAS_NO_REAL_SDCARD: = true - SD kart bölümleme gibi şeyleri devre dışı bırakır ve TWRP kurtarma programınıza uymuyorsa size biraz alan kazandırabilir
  • TW_NO_BATT_PERCENT: = true - düzgün desteklemeyen cihazlar için pil yüzdesinin görüntülenmesini devre dışı bırakır
  • TW_CUSTOM_POWER_BUTTON: = 107 - özel kilit ekranı için güç düğmesini eşler
  • TW_NO_REBOOT_BOOTLOADER: = true - yeniden başlatma önyükleyici düğmesini yeniden başlatma menüsünden kaldırır
  • TW_NO_REBOOT_RECOVERY: = true - yeniden başlatma kurtarma düğmesini yeniden başlatma menüsünden kaldırır
  • RECOVERY_TOUCHSCREEN_SWAP_XY: = true - X ve Y ekseni arasında dokunma eşlemesini değiştirir
  • RECOVERY_TOUCHSCREEN_FLIP_Y: = true - y ekseni dokunmatik ekran değerlerini döndürür
  • RECOVERY_TOUCHSCREEN_FLIP_X: = true - x ekseni dokunmatik ekran değerlerini döndürür
  • TWRP_EVENT_LOGGING: = true - dokunmatik ekran sorunlarının giderilmesine yardımcı olmak için dokunmatik olay günlüğünü etkinleştirir (bunu bir sürüm için açık bırakmayın - günlük dosyanızı çok hızlı doldurur)
  • BOARD_HAS_FLIPPED_SCREEN: = true - baş aşağı monte edilmiş ekranlar için ekranı ters çevirir

Kurtarma kaynağındaki Android.mk dosyalarına göz atarak ek yapı bayrakları bulunabilir, ancak bunlar genellikle kullanılmadığından bunları belgelemenin bir anlamı yoktur.

Recovery.Fstab'ı Kullanma

TWRP 2.5 ve üstü, yeni recovery.fstab özelliklerini destekler - özellikle TWRP'nin yedekleme / geri yükleme işlevlerini genişletme yeteneği. Çoğu bölüm otomatik olarak işleneceği için fstab bayrakları eklemenize gerek yoktur.

TWRP yalnızca 3.2.0 ve sonraki sürümlerde v2 fstab'ları destekler - TWRP'nin eski sürümlerinde fstab'ın eski biçimini kullanmanız gerekir. Galaxy S4 için bir TWRP fstab örneği:

Belirli yapı ağacınızla uyumluluğu en üst düzeye çıkarmak için, bir twrp.fstab oluşturabilir ve> etc> twrp.fstab içine yerleştirmek için PRODUCT_COPY_FILES kullanabilirsiniz.

TWRP başlatıldığında ve ramdiskte twrp.fstab bulduğunda, onu> etc> recovery.fstab.bak olarak yeniden adlandıracaktır - temelde cihazınızdaki fstab'ı uyumluluğu artıran TWRP fstab ile değiştirir.

Örnek kod:

PRODUCT_COPY_FILES + = device / lge / hammerhead / twrp.fstab: recovery> root> etc> twrp.fstab

TWRP'deki fstab, fstab'de listelenen her bölüm için bazı 'bayraklar' içerebilir.

Bu bayraklar eklendi sonuna kadar fstab'deki bölüm listesinin beyaz boşluk / boşluklar / sekmelerle ayrılmış. Bayrak yalnızca bu bölümü etkiler, diğerlerini etkilemez. Bayraklar noktalı virgülle ayrılır. İşte bazı örnek kod:

Şimdi bunu biraz inceleyelim. Buradaki bayrak 'Micro SDcard' görünen adını verecektir. Wipeingui bayrağı, bu bölümü Gelişmiş Silme menüsünde silmek için kullanılabilir hale getirecektir. Çıkarılabilir bayrak, bu bölümün her zaman mevcut olmadığını gösterir, bu da montaj hatalarının görüntülenmesini engeller.

Bayrakların tam listesi (TeamWin'e kredi) :

  • çıkarılabilir - önyükleme sırasında montaj hatalarının görüntülenmesini engelleyen bölümün mevcut olmayabileceğini belirtir
  • depolama - bölümün, bölümün yedekleme, geri yükleme, zip kurulumları vb. İçin depolama alanı olarak kullanılabilmesini sağlayan depolama olarak kullanılabileceğini belirtir.
  • depolama ayarları - ayarlar depolaması olarak yalnızca bir bölüm ayarlanmalıdır, bu bölüm TWRP'nin ayarlar dosyasını depolamak için konum olarak kullanılır
  • canbewiped - bölümün arka uç sistem tarafından silinebileceğini, ancak kullanıcı tarafından silinmek üzere GUI'de listelenmeyebileceğini belirtir
  • userrmrf - normal biçimli silme türünü geçersiz kılar ve yalnızca bölümün rm -rf komutu kullanılarak silinmesine izin verir
  • yedekleme = - eşittir işareti ile başarılmalıdır, bu nedenle yedekleme = 1 veya yedekleme = 0, 1 bölümün yedekleme / geri yükleme listesinde listelenebileceğini belirtirken, 0 bu bölümün yedekleme listesinde görünmemesini sağlar.
  • wipeingui - kullanıcının gelişmiş silme menüsünde silmek üzere seçmesine izin vermek için bölümün GUI'de görünmesini sağlar
  • Silme fabrikası sıfırlama - bölüm fabrika ayarlarına sıfırlama sırasında silinecek
  • görmezden gelmek - blkid, TWRP tarafından hangi dosya sisteminin kullanıldığını belirlemek için kullanılır, bu bayrak TWRP'nin blkid sonuçlarını atlamasına / yok saymasına ve yalnızca fstab'da belirtilen dosya sistemini kullanmasına neden olur
  • Keeplayoutversion - TWRP'nin .layoutversion dosyasını Sony Xperia S gibi cihazlarda / data / media kullanan, ancak yine de ayrı bir / sdcard bölümüne sahip olan cihazlarda tutmasına neden olur
  • symlink = - TWRP'nin bölümü monte ederken ek bir bağlama komutu çalıştırmasına neden olur, genellikle / sdcard oluşturmak için / data / media ile kullanılır
  • Görüntüle = - GUI'de listelenmek üzere bölüm için bir görünen ad belirler
  • depo adı = - GUI depolama listesinde listelenmek üzere bölüm için bir depolama adı belirler
  • yedekleme adı = - GUI yedekleme / geri yükleme listesinde listelenmek üzere bölüm için bir yedekleme adı ayarlar
    length = - genellikle Android’in tam cihaz şifrelemesi mevcutken şifre çözme anahtarını depolamak için / data bölümünün sonunda boş alan ayırmak için kullanılır, bunun ayarlanmaması cihazın şifrelenememesine neden olabilir
  • canencryptbackup = - Etkinleştirmek / devre dışı bırakmak için 1 veya 0, kullanıcı şifrelemeyi seçerse TWRP'nin bu bölümün yedeğini şifrelemesini sağlar (görüntüler değil, yalnızca katran yedeklemeleri için geçerlidir)
  • userdataencryptbackup = - Etkinleştirmek / devre dışı bırakmak için 1 veya 0, TWRP'nin bu bölümün yalnızca kullanıcı verileri bölümünü şifrelemesini sağlar, / data / app gibi belirli alt doluluklar zaman kazanmak için şifrelenmez
  • alt bölüm = - eşittir işareti ve bunun bir alt bölümü olduğu bölümün yolu ile devam etmelidir. Bir alt bölüm, ana bölümün 'parçası' olarak ele alınır, bu nedenle, örneğin, TWRP / datadata'yı otomatik olarak / data'nın bir alt bölümü yapar. Bu, / datadata'nın GUI listelerinde görünmeyeceği anlamına gelir, ancak / datadata, bu işlemler / data üzerinde her gerçekleştirildiğinde silinir, yedeklenir, geri yüklenir, bağlanır ve çıkarılır.

Alt bölümlerin kullanımına güzel bir örnek, LG Optimus G'deki 3x efs bölümleridir:

Bu, 3 bölümün tümünü TWRP GUI'de tek bir 'EFS' girişinde toplar ve üçünün de tek bir giriş altında yedeklenmesine ve geri yüklenmesine olanak tanır.

V2 Fstab kullanan TWRP 3.2.0 ve üstü ile, herhangi bir yapı bayrağı eklemenize gerek yoktur . V2 Fstab desteği otomatiktir. V2 Fstab, birden çok bölüme sahip USB OTG ve mikro-SD kartlar için yararlı olabilecek joker karakterleri (* simgesi) de destekler. Ayrıca V1 Fstab formatını kullanmaya devam edebilirsiniz ve aynı Fstab'da hem V1 hem de V2 türlerini kullanmak tamamen mümkündür.

Örneğin, bir USB OTG için joker karakter içeren bir V1 Fstab satırı:

İşte aynı cihaz için aynı sonucu elde eden bir V2 Fstab serisi:

Ek olarak, V1 Fstab formatını kullanan vb. Twrp.flag'leri dahil edebilirsiniz ve bunlar, V2 Fstab'ı TWRP bayraklarıyla, V2 Fstab'da bulunmayan ek bölümlerle veya V2 Fstab'daki ayarları geçersiz kılmak için kullanılabilir.

Örneğin, bir Huawei cihazında etc recovery.fstab dosyasında bu V2 fstab olabilir:

Ayrıca şu bayrakları da içerebilir:

Yani burada, TWRP.Flags'deki ilk iki satır Boot ve Recovery bölümlerini ekleyecektir. mevcut değildi V2 Fstab'da. Daha sonra, TWRP.flags içindeki / cust satırı, TWRP'ye son kullanıcının (cust) bölümünü yedeklemesine izin vermesini ve ona bir görünen ad vermesini söyleyecektir.

/ Misc bölümü twrp.flags dosyasında bulunur ve / oeminfo bölümü TWRP'ye yedeklemeye ve ona bir görünen ad vermesine de izin vermesini söyler.

/ Data hattına ihtiyacımız var çünkü birçok Huawei cihazı şifreli, ancak özel Huawei ikili dosyaları kullanıyor - bu nedenle, cihazın şifresini Kurtarma Modunda otomatik olarak çözmek için Huawei ikili dosyalarını kullanıyoruz. Yani burada / data satırı, TWRP'ye / dev / block / dm -0'ı kullanması talimatını verecek ve tipik olarak 'uygun' montaj için kullanılan / dev / block / bootdevice / isme göre / userdata'yı değil.

Son olarak / system_image vardır, böylece TWRP, Yedekleme ve Geri Yükleme menülerinde bir sistem görüntüsü oluşturma seçeneği içerecektir.

Resmi TeamWin github ayrıca resmi bir TWRP bağlantı noktasına sahip cihazlar için en son örnek cihaz ağaçlarını içermelidir. TeamWin github bulunabilir BURAYA .

Omni veya CM senkronize edildikten ve TWRP işaretlerinizi ayarladıktan sonra, bir kaynak oluşturmalısınız ./build/envsetup.sh

Ve 'öğle yemeği omni_hammerhead.eng' gibi bir şey yapabilmek için cihazı 'öğle yemeğine çıkarmak' isteyeceksiniz.

Başarılı bir öğle yemeğinden sonra çoğu cihaz şu komutu kullanır:

# İn –j # değerini çekirdek sayısı +1 ile değiştirmeniz gerekir. Yani bir çift çekirdeğiniz varsa -j3, dört çekirdekli -j5 olacaktır, vb. # 'İ çekirdek sayısı +1 ile değiştirin, yani bir çift çekirdeğiniz varsa -j3 ve dörtlü çekirdek -j5 olur vb.

Ayrıca, tipik Samsung cihazları bunu gerektirir:

Bunun nedeni, çoğu Samsung cihazının kurtarma işlemini içermesidir. önyüklemede fazladan bir ramdisk olarak, ayrı bir kurtarma bölümü yerine (diğer çoğu aygıtın kullandığı).

Şimdiye kadar, cihazınız için derlenmiş TWRP'ye sahip olmalısınız ve umarım bir emülatör ortamında çalışır. TWRP bağlantı noktanızı her zaman önce bir emülatör ortamında test etmelisiniz, böylece cihazınızı çalıştırma riskine girmezsiniz.
Bu cihaz yapılandırma dosyalarını indirin.

Bu aygıt dosyalarını kullanarak bir kurtarma görüntüsü derleyin. Android SDK'da, Araçlar -> AVD'leri Yönet'i tıklayın. Yeni'yi tıklayın. Aşağıdaki gibi ayarlayın:

Ardından Tamam'ı tıklayın.

AVD'nizi ve kurtarma resminizi aldıktan sonra, android-sdk / tools klasörünüze göz atarak emülatörde TWRP'yi başlatabilir ve bu komutu çalıştırabilirsiniz:

ADB'nin hemen çalışmadığını unutmayın. TWRP önyüklemeyi bitirdikten yaklaşık 10 ila 15 saniye sonra, ADB çevrimiçi olacaktır. ADB'yi init.rc aracılığıyla başlatıyoruz, bu nedenle TWRP yapmış olabileceğiniz bir tür kod hatası nedeniyle önyükleme yapmasa bile, ADB hala çalışmalıdır. Zevk almak!

TWRP ve A / B cihazları (TeamWin'e kredi):

TWRP açısından bakıldığında, A / B cihazları normal cihazlardan pek de farklı değildir, ancak geliştiriciler bu cihazlarda çalışma konusunda çekingen görünüyor. Bu konuya biraz ışık tutmaya çalışacağım ve umarım bu TWRP'yi A / B cihazlarına taşımak için bir kılavuz görevi görür.

Öncelikle, A / B cihazının ne olduğunu ve nasıl farklı olduğunu anlayalım. A / B cihazları, cihazdaki birçok bölümün kopyalarına sahiptir. Bir A / B aygıtında 2x sistem bölümü, 2x önyükleme bölümü, 2x satıcı bölümü, 2x modem / ürün yazılımı bölümü, vb. Bulunur. Bir seferde yalnızca bir yuva kullanılır. Erken önyükleme sırasında, önyükleyicinin ilk aşamaları BCB veya Önyükleyici Kontrol Bloğu adı verilen küçük miktarda veriyi okur ve A bölümlerini mi yoksa B bölümlerini mi başlatacağınıza karar verir. Bir OTA güncellemesi mevcut olduğunda, aktif yuvadaki veriler etkin olmayan yuvadan kopyalanır ve yama uygulanır / güncellenir. Örneğin, şu anda A yuvasındaysanız, cihazınız güncellemeyi indirir ve mevcut sistem bölümünü A yuvasından kopyalar ve yeni güncellemelerle B yuvasına yamanlar / günceller. Kopyalama ve güncelleme tamamlandığında, BCB güncellenir ve cihaz B yuvasını kullanarak yeniden başlatılır. Bir sonraki güncelleme mevcut olduğunda, B yuvasındaki sistem bölümü A yuvasına kopyalanır ve güncellenir, BCB güncellenir ve A yuvasına yeniden başlatılır. Aygıtta bölümleri görüntülerken, bunun gibi bir şey göreceksiniz:

Yukarıdaki listede yer alan ikili önyükleme, sistem ve satıcı bölümlerine dikkat edin, ancak yalnızca bir kullanıcı verileri bölümü.

Teknik olarak bildiğim bir gereklilik olmasa da, şimdiye kadar gönderilen tüm A / B cihazlarının ayrı bir kurtarma bölümü yoktur. Bunun yerine, önyükleme görüntüsü kurtarmayı ramdiskinde içerir. Önemli olan, önyükleme görüntüsünün artık kurtarmayı da içerdiğini bilmektir. Tamlık için, sistem bölümü tam bir kök dosya sistemidir. Önyükleme sırasında, çekirdeğe kurtarma için önyükleme yapması söylendiğinde, önyükleme bölümündeki ramdisk'i çıkaracaktır. Çekirdeğe önyükleyici tarafından kurtarma için önyükleme yapması söylenmezse, çekirdek uygun sistem bölümünü (A veya B) bağlar çünkü sistem bölümü tam kök dosya sistemidir. Bu, bu aygıtlardaki sistem bölümünün / system yerine / öğesine bağlandığı ve sistem bölümünün normalde önyükleme görüntüsü ramdiskinde ve / system alt klasöründe bulunan tüm dosyaları içerdiği anlamına gelir.

TWRP açısından bakıldığında, bir A / B cihazı için yapmanız gereken 3 şey vardır. İlk önce ayarlamanız gerekir

Kod:

Son olarak, TWRP'ye girdikten sonra, bootctl hal-info'nun hatasız bir şekilde doğru şekilde yanıt verdiğinden emin olmak isteyeceksiniz. Genellikle bootctl ikilisinin düzgün çalışması için özel bir kitaplık veya hatta birkaç hizmet gerekir. Bootctl düzgün çalışmazsa, TWRP içindeki yuvaları da doğru şekilde değiştiremezsiniz.

Ayara ek olarak

Kod:

AB_OTA_UPDATER: = doğru

ayrıca ayarlamak isteyebilirsiniz:

Kod:

BOARD_USES_RECOVERY_AS_BOOT: = doğru

BOARD_BUILD_SYSTEM_ROOT_IMAGE: = doğru

Eğer ayarlarsan

Kod:

BOARD_USES_RECOVERY_AS_BOOT: = doğru

o zaman kurtarma görüntüsü oluştur artık çalışmayacak ve bunun yerine bootimage yapmanız gerekecek. Yalnızca TWRP yapı ağaçları için bu işaretlerden herhangi birinin ayarlanmasını önermiyorum. Bu bayraklar muhtemelen A / B cihazları için tam ROM oluşturan geliştiriciler için gerekli olacaktır.

A / B cihazlarına TWRP'yi yükleme / yanıp sönme:

Bilinen tüm A / B cihazlarının ayrı bir kurtarma bölümü olmadığından, sonunda önyükleme bölümüne TWRP'yi flaş etmeniz gerekecektir. Pixel 1 ve 2'de, TWRP'yi TWRP'yi yanıp sönmeden geçici olarak başlatmak için fastboot önyükleme kullanıyoruz. Ardından, kullanıcıların her iki yuvaya da TWRP'yi flaş etmesine izin vermek için bir zip sağlıyoruz. Bu fermuarlardan birini web sitemizden indirebilir ve aygıtlarınızı desteklemek için gerektiği şekilde zip dosyasını güncelleyebilirsiniz. Sonunda, kullanıcıların fermuar kullanmaya gerek kalmadan bu cihazlarda kurtarma işlemlerini flaş etmelerine izin vermek için TWRP'ye araçlar ekleyeceğiz.

Son zamanlarda Razer Phone'da çalıştım. Razer Phone maalesef fastboot önyüklemeyi desteklemiyor. Bunun yerine, kullanıcıların şu anda etkin olan önyükleme yuvalarını kullanarak

Kod:

TWRP'ye girmek için. TWRP'ye girdikten sonra yeniden başlatma sayfasına gidebilir ve orijinal aktif yuvalarına geri dönebilir, bir yedekleme yapabilir ve ardından TWRP'yi kurabilirler. Etkin olmayan yuvayı kullanmak, kullanıcıların TWRP'yi kurmadan önce cihazlarının iyi, değiştirilmemiş bir yedeğini almalarına olanak tanır.

Ek Notlar:

TWRP almak istiyorsanız cihazınız için resmi olarak destekleniyor TWRP uygulamasıyla otomatik olarak yüklenebilmesi için ve bunu gerçekten yapmak istiyorsunuz, böylece aynı cihazın diğer sahiplerinin resmi TWRP desteğinden yararlanabilmesi ve yapılacak güzel şey bu, aşağıdaki bilgileri şu adrese göndermeniz gerekir: TeamWin:

  1. TWRP'yi kaynaktan derlemek için cihaz yapılandırma dosyaları cihazınız için - recovery.img dosyasını elle yeniden paketlemeyin , onu kaynaktan derlemeleri gerekir.
  2. TeamWin, TWRP'nin bir kopyasını oluşturduktan sonra, doğrulama için size gönderecekler - doğruladıktan sonra, TeamWin cihazınız için çalışan bir görüntü oluşturacak ve bunu resmi TWRP uygulamasına ekleyecektir.
13 dakika okundu