Android memiliki fitur A/B slot yang memungkinkan pengguna untuk menggunakan dua slot sistem operasi yang berbeda. Dalam artikel ini, kita akan membahas bagaimana fitur ini bekerja pada perangkat Android, serta beberapa tips dan trik untuk menggunakannya.
A/B Slot: Bagian-Bagiannya
Fitur A/B slot terdiri dari dua bagian: GPT partition attribute fields dan UFS BootLunEn attribute. Dalam bagian ini, kita akan membahas lebih lanjut tentang keduanya.
Upgrade Roll-Back
upgrade roll-back adalah fitur yang memungkinkan pengguna untuk kembali ke slot sebelumnya jika upgrade sistem operasi gagal. Fitur ini menggunakan counter yang diinisialisai pada 7 dan berkurang setiap kali sistem operasi di-booting, kecuali jika flag "boot successful" dari userspace diatur. Jika counter mencapai 0, boot loader akan secara otomatis membatalkan slot tersebut dan beralih ke slot lainnya.
Namun, bagi beberapa pengguna, fitur ini dapat menjadi masalah, terutama untuk mereka yang menggunakan postmarketOS dan memiliki partition userdata yang rusak. Dalam kasus seperti ini, sistem operasi tidak dapat di-booting lagi, sehingga perlu menggunakan fastboot untuk membersihkan flag dan memulai sistem operasi sekali lagi.
Mengatasi Sistem Operasi yang Tidak Bisa Di-Booting
Jika Anda mengalami masalah seperti itu, Anda dapat mencoba mengatasi dengan menggunakan command-line interface (CLI) tool bernama qbootctl. Tool ini memungkinkan pengguna untuk mengatur slot sistem operasi dan mengaktifkan flag "boot successful".
GPT
Setiap header partisi GPT berisi 8 byte (64 bit) attribute flags, di antaranya 16 bit terakhir (bits 48-63) digunakan oleh vendor untuk menampilkan informasi tentang slot. Qualcomm menggunakan flag ini untuk menunjukkan apakah slot aktif, apakah slot telah di-booting dengan sukses, dan apakah slot tidak dapat di-booting.
UFS
Spesifikasi UFS mendukung hingga dua BOOT LUN, yang digunakan untuk menyimpan bootloader. Pada perangkat Qualcomm, BOOT LUNs ini digunakan untuk partisi xbl_a dan xbl_b. Untuk mengaktifkan atau nonaktifkan BOOT LUNs, Anda harus menulis 1 atau 2 ke atribut bBootLunEn.
Qbootctl
qbootctl adalah CLI tool yang memungkinkan pengguna untuk mengatur slot sistem operasi pada perangkat Android. Tool ini berbasis Linux dan memiliki antarmuka user-friendly. qbootctl juga termasuk port dari kode gpt-utils yang dibutuhkan oleh HAL, serta implementasi API UFS BSG.
Mengaktifkan Slot Lain
Dengan menggunakan qbootctl, Anda dapat mengaktifkan slot lain dengan cara berikut:
- Get the current slot:
$ qbootctl -c
- Assuming the current slot is "a", run the following command:
$ qbootctl -s b
(or vice versa if your current slot is "b")
Perangkat yang Dapat Digunakan
qbootctl telah diperbarui untuk beberapa perangkat, termasuk:
- OnePlus 6 (oneplus-enchilada)
- OnePlus 6T (oneplus-fajita)
- SHIFT Shift6mq (shift-axolotl)
- Google Pixel 3a (google-sargo)
- OnePlus 8 Pro (oneplus-instantnoodlep)
- Xiaomi 12 (xiaomi-cupid)
Lihat Juga
- Guides for Dual boot pm os with android via a/b slot on oneplus 6/6t
- qbootctl Alpine package: qbootctl
- MR enabling qbootctl for A/B sdm845 devices: pmaports!3190