[Linux][ARM64][qbootctl]A port of the Qualcomm Android bootctrl HAL for musl/glibc userspace.

Name: qbootctl
Description: A port of the Qualcomm Android bootctrl HAL for musl/glibc userspace.
(It means you can switch slot on a phone with Linux installed.)
Original author: Caleb Connolly
Compatible system: Linux
Compatible CPU architecture: ARM64
Download Link: https://stor.classfun.cn:4443/s/Q9TQ
(Built by @snnbyyds on 2022/7/21)
Source Code: Qualcomm Snapdragon 845 Mainline / qbootctl · GitLab
Screen Shot:

Qualcomm bootctl HAL for Linux

This HAL was pulled from AOSP source code and bastardised to build and run on a musl/glibc system. This may or may not render any hardware you run it on unusable, you have been warned.

Dependencies

  • zlib-dev
  • meson
  • cmake
  • linux-headers

Building

qbootctl uses the meson build system

meson build
meson compile -C build

Usage

qbootctl: qcom bootctrl HAL port for Linux
-------------------------------------------
qbootctl [-c|-m|-s|-u|-b|-n|-x] [SLOT]

    <no args>        dump slot info (default)
    -h               this help text
    -c               get the current slot
    -b SLOT          check if SLOT is marked as bootable
    -n SLOT          check if SLOT is marked as successful
    -x [SLOT]        get the slot suffix for SLOT (default: current)
    -s SLOT          set to active slot to SLOT
    -m [SLOT]        mark a boot as successful (default: current)
    -u [SLOT]        mark SLOT as unbootable (default: current)

Debugging

Set DEBUG to 1 in utils.h to enable debug logging.

Documentation

A more details explanation and a list of devices where qbootctl has been
validated can be found on the postmarketOS wiki: