QCOM baseband profile mangaer
I've written a profile manager for the QCOM baseband which talks to the PDC service.
The PDC is the persistent device configuration.
It controls similar settings as the carrier configuration on Android,
such as the APN, SMSC, the IMS functionality, the 5G functionality, ...
But the PDC profiles have more control over the baseband than the Android carrier configuration does.
As far as I understand, those PDC profiles are loaded into the baseband also via the PDC, but are persistent and
usually updated via Android system updates. The PDC profiles are stored as foo.mbn files under various locations.
I wonder if it is possible to update the PDC profiles without an Android update. I would have
expected an OTA mechanism which every other carrier/operator/provider can use. Maybe using OMA DM (Open Mobile Aliance Device Management).
But so far I've not found any evidence for this.
The new qcom-baseband-profile-manager is a daemon which selects the "best" available profile for you without
any user interaction.
It is configured by a toml config file and selects the profile based on the simcard and the available
profiles. It also notices if the simcard changes and selects a different profile based on it.
For further information see the README.md
There is also a binary repo for postmarketos containing the package until the packages are available in the package repositories of alpine and postmarketos.
The APKBUILD files are available at the alpine gitlab as a fork of aports and on the postmarketos gitlab as a fork of pmports.
How to install qcom-baseband-profile-manager
You can either use python tooling (pip/poetry) to install it from the repo.
Or as alternative use alpine packages on a phone.
To use alpine packages download the binary repo onto the phone:
cd /root
git clone https://gitlab.postmarketos.org/modem/openimsd/apk-binary-repo
cp apk-binary-repo/keys/pmos@local-692c9b1e.rsa.pub /etc/apk/keys/
apk apk-binary-repo/edge/aarch64/{py3-gsm0338,py3-osmocom,py3-statemachine,py3-qcom-baseband-profile-manager}*.apk
# copy config from the repo
wget "https://gitlab.postmarketos.org/modem/openimsd/qcom-baseband-profile-manager/-/raw/main/pdc.toml?ref_type=heads&inline=false" -o /root/pdc.toml
qcom-baseband-profile-manager -d qrtr://0 -c /root/pdc.toml