Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

Tinjauan tentang Virtual A / B

Android memiliki dua mekanisme update: update A / B (mulus) dan update non-A / B. Untuk mengurangi kompleksitas kode dan meningkatkan kemampuan update, Android 11 menyatukan dua mekanisme. Mekanisme pembaruan baru, A / B virtual, menggabungkan keunggulan kedua pendahulunya dengan menghadirkan pembaruan tanpa batas ke semua perangkat sambil meminimalkan biaya penyimpanan.

  • Pembaruan A / B virtual berjalan mulus seperti pembaruan A / B. Pembaruan A / B virtual meminimalkan waktu perangkat offline dan tidak dapat digunakan.
  • Pembaruan A / B virtual dapat dibatalkan . Jika OS baru gagal melakukan boot, perangkat secara otomatis mengembalikan ke versi sebelumnya.
  • Pembaruan A / B virtual menggunakan ruang ekstra minimum dengan menduplikasi hanya partisi yang digunakan oleh bootloader. Partisi lain yang dapat diperbarui diambil gambarnya.

Latar Belakang

Bagian ini menjelaskan beberapa terminologi dan teknologi yang mendukung A / B virtual.

Pemeta perangkat

Device-mapper adalah lapisan blok virtual Linux yang sering digunakan di Android. Dengan partisi dinamis , partisi seperti /system adalah tumpukan perangkat berlapis:

  • Di bagian bawah tumpukan adalah partisi super fisik (misalnya, /dev/block/by-name/super ).
  • Di tengah adalah perangkat dm-linear , menentukan blok mana di partisi super yang membentuk partisi yang diberikan. Ini muncul sebagai /dev/block/mapper/system_[a|b] pada perangkat A / B, atau /dev/block/mapper/system pada perangkat non-A / B.
  • Akhirnya, perangkat dm-verity dibuat untuk partisi terverifikasi. Perangkat ini memverifikasi bahwa blok pada perangkat dm-linear ditandatangani dengan benar. Itu muncul sebagai /dev/block/mapper/system-verity dan merupakan sumber dari /system mount point.

Berikut diagram tumpukan di bawah titik pemasangan /system .

Penumpukan paritisi di bawah sistem

Diagram 1. Tumpukan di bawah titik pemasangan / system

ikhtisar dm-snapshot

A / B virtual mengandalkan dm-snapshot , modul device-mapper untuk mengambil snapshot status perangkat penyimpanan. Saat menggunakan dm-snaphot , ada empat perangkat yang sedang bermain:

  • Perangkat dasar adalah perangkat yang dipotret. Di halaman ini, perangkat dasar selalu berupa partisi dinamis, seperti sistem atau vendor.
  • Perangkat copy-on-write (COW) digunakan untuk mencatat perubahan ke perangkat dasar. Ukurannya bisa berapa saja, tetapi harus cukup besar untuk mengakomodasi semua perubahan pada perangkat dasar.
  • Perangkat snapshot dibuat menggunakan target snapshot . Menulis ke perangkat snapshot ditulis ke perangkat COW. Membaca dari perangkat snapshot yang dibaca dari perangkat dasar atau perangkat COW, bergantung pada apakah data yang sedang diakses telah diubah oleh snapshot.
  • Perangkat asal dibuat menggunakan target snapshot-origin . Membaca ke perangkat asal dibaca langsung dari perangkat dasar. Menulis ke perangkat asal menulis langsung ke perangkat dasar, tetapi data asli dicadangkan dengan menulis ke perangkat KK.

Pemetaan perangkat untuk dm-snapshot

Diagram 2. Pemetaan perangkat untuk dm-snapshot