Android memiliki fitur dinamis untuk partisi, yang memungkinkan Anda untuk menginstal beberapa sistem operasi pada satu perangkat tanpa menghapus data sebelumnya. Dalam artikel ini, kita akan membahas tentang slots dan qbootctl, dua fitur penting dalam Android dynamic partitions.
Technical Information
Android Slots adalah fitur yang memungkinkan Anda untuk membuat slot untuk sistem operasi lain di samping sistem operasi utama. Slots digunakan untuk membuatnya mungkin untuk mengembalikan sistem operasi yang tidak sukses sebelumnya, serta untuk menginstal sistem operasi lain sementara menggunakan perangkat.
Fitur slots juga memungkinkan Anda untuk mengembalikan sistem operasi jika terjadi kesalahan pada proses upgrade. Dalam kasus ini, Anda dapat dengan mudah mengembalikan sistem operasi ke versi sebelumnya tanpa menghapus data.
Upgrade Roll-back
Proses upgrade roll-back dilakukan menggunakan counter, yang diinisialisasi pada nilai 7 dan dikurangi setiap kali Anda boot sistem operasi. Ketika counter mencapai 0, bootloader akan secara otomatis menandai slot sebagai "unbootable" dan beralih ke slot lain.
Namun, permasalahan muncul ketika Anda memiliki dua slot yang tidak berfungsi dengan baik. Dalam kasus ini, Anda harus menggunakan fastboot untuk membersihkan flag dan boot sistem operasi lagi.
Fix an Unbootable System
Jika Anda menemui masalah pada saat booting sistem operasi, maka Anda perlu mengatasi situasi tersebut. Langkah pertama adalah mendapatkan slot yang sedang digunakan:
$ fastboot getvar current-slot
Jika slot yang sedang digunakan adalah "a", maka Anda dapat menggunakan perintah berikut untuk membersihkan flag:
$ fastboot set_active b
$ fastboot set_active a
Perlu diingat bahwa Anda harus menginversi perintah jika Anda memiliki slot lain.
GPT dan UFS
GPT (GUID Partition Table) adalah sistem partisi yang digunakan oleh Android. Setiap header partisi GPT memiliki 8 byte (64 bit) atribut flag, dari mana terakhir 16 bit (bit 48-63) dibiarkan untuk penggunaan vendor.
UFS (Universal Flash Storage) adalah sistem penyimpanan flash yang mendukung hingga dua LUN (Logical Unit). Pada perangkat Qualcomm, LUN digunakan untuk menyimpan bootloader. Perintah bBootLunEn dapat digunakan untuk mengaktifkan atau menonaktifkan LUN.
Qbootctl
Qbootctl adalah alat perintah yang memungkinkan Anda untuk mengontrol slot A/B pada Android devices. Alat ini adalah port dari Android bootctrl HAL yang dikembangkan oleh Qualcomm, yang kemudian di-modifikasi menjadi versi Linux dan memberikan antarmuka CLI yang ramah.
Switching Slots
Anda dapat dengan mudah berpindah-pindah antara slot A/B menggunakan qbootctl. Langkah-langkahnya adalah sebagai berikut:
$ # get the current slot
$ qbootctl -c
$ # Assuming current slot is "a"
$ qbootctl -s b
$ # if your current slot is b
$ qbootctl -s a
Validated Devices
Qbootctl telah diuji dan dikonfirmasi bekerja pada beberapa perangkat, yaitu:
- 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 but some part of it can be reused on some other device.
- Qbootctl Alpine package: qbootctl
- MR enabling qbootctl for A/B sdm845 devices: pmaports!3190