- Katılım
- 12 Nis 2024
- Mesajlar
- 5,455
- Yaş
- 37
- Cihaz
- Nothing Phone (2a)
- Nothing OS Sürümü
- 3.2
- Kulaklık
- Diğer
Android işletim sistemi, kullanıcı deneyimini artırmak ve cihazların güvenliğini sağlamak amacıyla sürekli olarak güncellenmektedir. Bu güncellemelerin etkin bir şekilde uygulanabilmesi için Android, Virtual A/B (Sanal A/B) adlı bir güncelleme mekanizması geliştirmiştir. Bu makalede, Virtual A/B'nin temel özellikleri, çalışma prensipleri ve sağladığı avantajlar detaylı bir şekilde ele alınacaktır.
Virtual A/B Nedir?
Virtual A/B, Android'in ana güncelleme mekanizmasıdır ve eski A/B güncellemeleri ile birlikte çalışarak güncellemelerin alan yükü maliyetini azaltmayı amaçlar. Android 11 ile tanıtılan bu mekanizma, dinamik bölümler için ek bir alan kullanmadan güncellemeleri yönetir. Bunun yerine, güncelleme verileri bir anlık görüntüye (snapshot) yazılır ve başarılı bir başlatma onaylandıktan sonra temel bölüme entegre edilir.Virtual A/B'nin Temel Özellikleri
Virtual A/B'nin sunduğu bazı temel özellikler şunlardır:- Sorunsuz Güncellemeler: Virtual A/B güncellemeleri, cihazın arka planda çalışırken tamamen uygulanmasını sağlar. Bu sayede kullanıcılar cihazlarını kullanmaya devam ederken güncellemeler tamamlanır.
- Geri Alma Seçeneği: Yeni işletim sistemi başlatılamazsa, cihaz otomatik olarak önceki sürüme geri döner. Bu özellik, kullanıcıların güvenliğini artırır ve sistemin her zaman çalışır durumda kalmasını sağlar.
- Minimum Alan Kullanımı: Virtual A/B, yalnızca önyükleme yükleyici tarafından kullanılan bölümleri kopyalayarak minimum düzeyde ek alan kullanır. Diğer güncellenebilir bölümler anlık olarak görüntülenir.
Arka Plan ve Terminoloji
Virtual A/B'nin çalışabilmesi için bazı terminolojilerin anlaşılması önemlidir. OTA (Over-The-Air) kurulumları sırasında, yeni işletim sistemi verileri ya fiziksel bölümlere ya da Android'e özgü COW (Copy-On-Write) cihazlarına yazılır. Cihaz yeniden başlatıldığında, dinamik bölüm verileri dm-user ve snapuserd daemon'ı aracılığıyla temel cihaza entegre edilir.Cihaz Haritalayıcı (Device-mapper)
Cihaz haritalayıcı, Android'de sıkça kullanılan bir Linux sanal blok katmanıdır. Dinamik bölümler ile /system gibi bölümler, katmanlı cihazlar olarak yapılandırılır. Bu yapı aşağıdaki gibidir:- Fiziksel Süper Bölüm: En alttaki katman fiziksel süper bölümü temsil eder.
- dm-linear Cihaz: Ortada yer alan bu katman, süper bölümde hangi blokların dinamik bölümü oluşturduğunu belirtir.
- dm-verity Cihazı: En üstteki katman, doğrulanmış bölümler için oluşturulmuş dm-verity cihazıdır.
Sıkıştırılmış Anlık Görüntüler
Android 12 ve sonraki sürümlerde, /data bölümündeki alan gereksinimlerinin yüksek olmasından dolayı sıkıştırılmış anlık görüntüler etkinleştirilebilir. Sıkıştırılmış anlık görüntüler, daha az alan kaplayarak güncellemelerin daha verimli bir şekilde uygulanmasını sağlar.COW Formatı
Sıkıştırılmış anlık görüntüler, Android'e özgü COW formatını kullanır. Bu format, OTA hakkında meta veriler içerir ve yeni işletim sistemi verilerini barındıran belirgin tamponlar içerir. COW formatı, daha fazla işlem türünü destekleyerek güncellemelerin daha esnek bir şekilde uygulanmasına olanak tanır.dm-user ve snapuserd
dm-user modülü, kullanıcı alanında blok cihazları uygulamak için kullanılan bir çekirdek modülüdür. Snapuserd ise bu modülün kullanıcı alanı bileşenidir ve Virtual A/B sıkıştırmasını yönetir. Snapuserd daemon'ı, anlık görüntülerle ilgili tüm I/O işlemlerini yönetir ve yeni işletim sistemi verilerini sıkıştırarak anlık görüntüye yazar.XOR Sıkıştırması
Android 13 ile birlikte gelen XOR sıkıştırma özelliği, kullanıcı alanı anlık görüntülerinin eski bloklar ile yeni bloklar arasındaki XOR sıkıştırılmış baytları depolamasını sağlar. Bu özellik sayesinde yalnızca birkaç bayt değiştiğinde daha az alan kullanılır ve anlık görüntü boyutu %25 ila %40 oranında azaltılabilir.Anlık Görüntü Birleştirme Süreci
Android 13 ile birlikte anlık görüntü ve birleştirme süreçleri snapuserd tarafından gerçekleştirilir. Birleştirme işlemi tamamlandığında, sistem temel bölümle dm-verity'yi çökertir ve dm-user'ı kaldırır.Bu süreç sırasında eğer cihaz yeniden başlatılırsa birleştirme işlemi kaldığı yerden devam eder.Başlatma Geçişleri
Sıkıştırılmış anlık görüntülerle başlatıldığında ilk aşama init'in snapuserd'yi başlatması gerekmektedir. Ancak bu süreçte sepolicy yüklendiğinde snapuserd yanlış bağlamda kalabilir ve okuma talepleri başarısız olabilir. Bu sorunu çözmek için snapuserd'nin init ile aynı anda geçiş yapması sağlanır.Kısaca; Android'in Virtual A/B güncelleme mekanizması, kullanıcı deneyimini iyileştirmek için tasarlanmış karmaşık bir sistemdir. Sorunsuz güncellemeler sunması, geri alma seçenekleri sağlaması ve minimum alan kullanımı gibi avantajları ile modern Android cihazlarının güncellenmesini kolaylaştırmaktadır. Sıkıştırılmış anlık görüntüler ve diğer yenilikçi özellikler sayesinde Android, kullanıcıların güvenliğini artırırken aynı zamanda cihaz performansını da optimize etmektedir.Gelecekteki Android sürümleriyle birlikte bu mekanizmanın daha da geliştirileceği öngörülmektedir. Kullanıcıların en son teknolojilerden faydalanabilmesi için sürekli olarak yenilikçi çözümlerin sunulması gerekmektedir. Android'in bu alandaki çabaları, mobil teknolojilerin evriminde önemli bir rol oynamaktadır.