Skip to content

5.x/Qt6 Support - #240

Draft
anj1 wants to merge 5 commits into
pgaskin:masterfrom
anj1:qt6
Draft

anj1 wants to merge 5 commits into
pgaskin:masterfrom
anj1:qt6

Conversation

@anj1

@anj1 anj1 commented Sep 22, 2026

Copy link
Copy Markdown

A draft PR for work-in-progress support for the 5.x firmware release series, using Qt6. Much of the core libraries are quite similar so with some changes most of the nickelmenu infrastructure works.

Tested and verified on-device, on a Kobo Clara Colour (N367) on 5.18.270971. The menu comes up and basic commands (like connecting usb) work.

Still needs a bit of work, so submitting this as a draft PR, and can discuss integration steps. Currently it has a one-boot, self-disabling installer with exact device/firmware checks and safe upgrades from earlier test builds.

Some steps that were required:

  • Replacing NickelHook with a build-pinned ARM hook that safely updates a full-RELRO GOT slot, restores page protection, and removes itself after one constructor call.
  • Handling Nickel recreating MainNavView after USB transitions using a public Qt event filter.
  • Dispatching blocking commands off the GUI thread while keeping UI/private QObject actions on it.
  • Explicitly disabling private Nickel actions whose Qt 5 ABIs have not yet been validated.

@anj1
anj1 requested a review from pgaskin as a code owner September 22, 2026 03:51
@anj1
anj1 marked this pull request as draft September 22, 2026 03:51
@anj1 anj1 mentioned this pull request Sep 30, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant