The packaging page describes the implemented unixnu release command, its
board.toml keys, the outputs and the checks verify makes. The arm64e page states
that arm64e needs native PAC hardware, that iPadOS 18 is the last version that
supports arm64, recommends PAC devices and the iOS or iPadOS 27 profile, and
states that every driver and optimization must work for 17 and 27 with the
build target as the only difference.
Introduce a generic Tools submenu plus a menu-plugin protocol so device
tools can be discovered at runtime instead of being hardcoded in UniXNU.
Structure:
- UniXNUPkg/Include/Protocol/UniXNUMenuPlugin.h: plugin protocol with a
Run callback, a content rect and a DrawStatus footer callback.
- UniXNUPkg/Library/UniXNULib: discover installed plugins, render a
Back + plugin list, and run the selected plugin between the header and
footer while keeping the upper UI visible.
- UniXNUPkg/Driver/AdvancedLogDxe: first plugin; exports the Advanced
Logger log as OneSend QR frames with 5 volume-key speed gears and a
5-segment level bar, drawn with a single Blt.
- UniXNUPkg.dec: adds the menu plugin GUID and PcdUniXNUDeviceModel so
exported log files are named with the device model.
- scripts/unixnu/payload.py, built-in config and docs: `tools = true`
appends a Tools entry and documents the `tools` action.
The exported QR frames are read with OneSend (扫传):
https://onesend.01mvp.com
Scope: loader and boot logic are unchanged. This commit only adds the
menu/UI plugin path and the Advanced Logger tool; device wiring lives in
the platform checkout and is not part of this change.
The boot menu uses a column layout on a framebuffer whose width/height
is below [ui] portrait_below (default 800 thousandths): the vector logo
on top, numbered entry cards at the bottom and wrapping status lines.
[ui] layout forces landscape or portrait. qemu-run.py gains
--display-size to test tall panels, and smoke.sh a layout scenario.
Add English and Simplified Chinese documentation under docs/, covering the boot chain, build, boot, debugging, porting, drivers, XNU 4 KiB pages, macOS and device notes. Add the Pages workflow and CNAME. Rename the boot manager from CrabApple to UniXNU across the package, symbols, paths, configuration file and logs. Update README with the documentation badge and CONTRIBUTING link.