PinePhone modem gets easy OTA update support via fwupd

PinePhone modem gets easy OTA update support via fwupd

As most readers will know, the PinePhone is essentially considered to be the reference mobile Linux hacker's playground. And while this achievement may be for the most part thanks to its flexible software, its hardware structure, and the Quectel EG25-G baseband in particular, are no exception. The modem firmware can be flashed through fastboot over USB like a regular Android phone, and in recent months, even an open-source firmware for it was developed, for what could be the first time ever on this kind of device, including audio, GPS and proper power management. In fact, what stopped this impressive operating system from spreading further, or being shipped by default on new Pines, is not really its lack of maturity, but rather the set of legal problems that are associated with re-flashing of mobile broadband modems. (There are still instructions on how to flash it, of course)

Dylan's upstreamed changes to enable fwupd modem flashing support

The recent news does not, however, directly concern the open-source firmware in itself, in spite of being closely related. Developer Dylan Van Assche has deployed support for the PinePhone modem update mechanism through fwupd, the Linux daemon for upgrading internal firmware (and most widely used for BIOS and NVME on desktops). This means that whenever a new official update for the baseband firmware is deployed, flashing it will be as easy as opening your desktop's "app store", or for more hardcore users, as typing one single terminal command. Currently, an authorization is pending for PINE64 to distribute the copyrighted Quectel and Hexagon DSP firmware blobs legally, after which the firmware update mechanism will be deployed.

This is achieved, for the most part, by creating a bridge of interfaces between the extensive LVFS API and the device, and packaging firmware updates to be distributed through fwupd and consequently flashed through the fastboot interface exposed by the baseband (as the modem runs, surprisingly, an Android system itself), while inhibiting the modem to prevent conflicts.

Further information is available in Dylan's detailed blog post announcing this change, and how it works on the technical side. An oddly satisfying demo of the upgrade mechanism, made as simple as using the graphical GNOME Firmware tool, is showcased in the video below.