Sanal A / B'ye Genel Bakış

Android'in iki güncelleme mekanizması vardır: A / B (kesintisiz) güncellemeler ve A / B olmayan güncellemeler. Kod karmaşıklığını azaltmak ve güncellenebilirliği geliştirmek için Android 11 iki mekanizmayı birleştiriyor. Yeni güncelleme mekanizması, sanal A / B, depolama maliyetini en aza indirirken tüm cihazlara sorunsuz güncellemeler getirerek her iki öncekinin avantajlarını birleştiriyor.

  • Sanal A / B güncellemeleri, A / B güncellemeleri gibi kusursuzdur . Sanal A / B güncellemeleri, bir cihazın çevrimdışı ve kullanılamaz olduğu süreyi en aza indirir.
  • Sanal A / B güncellemeleri geri alınabilir. Yeni işletim sistemi önyükleme yapamazsa, cihazlar otomatik olarak önceki sürüme geri döner.
  • Sanal A / B güncellemeleri, yalnızca önyükleyici tarafından kullanılan bölümleri kopyalayarak minimum ekstra alan kullanır. Diğer güncellenebilir bölümlerin anlık görüntüsü alınır.

Arka fon

Bu bölüm, sanal A / B'yi destekleyen bazı terminoloji ve teknolojileri açıklamaktadır.

Cihaz eşleyici

Cihaz eşleyici, Android'de sıklıkla kullanılan bir Linux sanal blok katmanıdır. Dinamik bölümlerle , /system gibi bölümler bir yığın katmanlı aygıtlardır:

  • Yığının en altında fiziksel süper bölüm bulunur (örneğin, /dev/block/by-name/super ).
  • Ortada, süper bölümdeki hangi blokların verilen bölümü oluşturduğunu belirten bir dm-linear cihaz var. Bu, bir A / B cihazında /dev/block/mapper/system_[a|b] veya A / B olmayan bir cihazda /dev/block/mapper/system görünür.
  • Son olarak, doğrulanmış bölümler için bir dm-verity cihazı oluşturulur. Bu cihaz, dm-linear cihaz üzerindeki blokların doğru şekilde imzalandığını doğrular. /dev/block/mapper/system-verity olarak görünür ve /system bağlama noktasının kaynağıdır.

İşte /system bağlama noktası altındaki yığının bir diyagramı.

Sistemin altında paritisyon istifleme

Şema 1. / sistem bağlama noktasının altında yığınlama

dm-anlık görüntüye genel bakış

Sanal A / B, bir depolama cihazının durumunun anlık görüntüsünü almak için bir cihaz eşleyici modülü olan dm-snapshot dayanır. dm-snaphot , oyunda dört cihaz vardır:

  • Temel cihaz, anlık görüntüsü alınan cihazdır. Bu sayfada, temel cihaz her zaman sistem veya satıcı gibi dinamik bir bölümdür.
  • Yazma üzerine kopyalama (COW) cihazı, baz cihazdaki değişiklikleri kaydetmek için kullanılır. Herhangi bir boyutta olabilir, ancak temel cihazdaki tüm değişiklikleri barındıracak kadar büyük olmalıdır.
  • Anlık görüntü cihazı, snapshot hedefi kullanılarak oluşturulur. Anlık görüntü cihazına yazılanlar COW cihazına yazılır. Anlık görüntü cihazından okur, erişilmekte olan verilerin anlık görüntü tarafından değiştirilip değiştirilmediğine bağlı olarak temel cihazdan veya COW cihazından okunur.
  • Köken cihazı kullanılarak oluşturulan snapshot-origin hedef. Doğrudan baz cihazdan okunan orijinal cihaza okur. Orijinal aygıta yazar, doğrudan temel aygıta yazar, ancak orijinal veriler COW aygıtına yazılarak yedeklenir.

Dm-snapshot için cihaz eşleme

Şema 2. dm-snapshot için cihaz eşleme