Commit Graph
225 Commits
Author SHA1 Message Date
UniXNU Docs 1a0f57fd65 docs: describe Linux dependency setup across distributions 2026-10-25 03:07:51 +08:00
rponeawa c8057bbcde feat(linux): support native package managers and host LLVM layouts 2026-10-25 03:07:50 +08:00
UniXNU Docs dd284bc5a0 docs: explain saved inputs, boot arguments and green bar diagnosis 2026-10-25 03:02:55 +08:00
rponeawa 80cf8d4923 feat(build): load local inputs and add build step shortcuts 2026-10-25 03:02:54 +08:00
UniXNU Docs 9521f49712 docs: highlight firmware build and payload discovery requirements 2026-10-25 02:57:27 +08:00
rponeawa 8d157ee18a chore(firmware): retain the RAM disk source license 2026-10-25 02:56:32 +08:00
rponeawa c952843598 feat(firmware): share the FDT initrd block driver across device ports 2026-10-25 02:56:06 +08:00
UniXNU Docs 0400f6b9d8 docs: remove device example from project introduction 2026-10-25 02:43:38 +08:00
UniXNU Docs aad4fd4256 docs: highlight device migration on homepages and READMEs 2026-10-25 02:40:34 +08:00
UniXNU Docs ca5bc338ca docs: restore GPU news and clarify shared platform scope 2026-10-25 02:34:21 +08:00
rponeawa a8f75eed7c build: source board drivers from device repositories 2026-10-25 02:30:03 +08:00
UniXNU Docs 6488ad6468 docs: publish shared porting records and subsystem guides 2026-10-25 02:30:02 +08:00
rponeawa 6fed2312dd feat: validate structured device porting records 2026-10-25 02:27:00 +08:00
rponeawa 66bcb97499 build: pin published canonical component revisions 2026-10-25 02:08:23 +08:00
rponeawa 73a793d20f refactor: resolve SoC profiles and canonical component sources 2026-10-25 02:07:33 +08:00
UniXNU Docs 793f852ead docs: document platform structure and component migration 2026-10-25 02:07:08 +08:00
ljhhkx529 c62bf12595 Add Tools menu plugin system and Advanced Logger plugin
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.
2026-10-25 00:01:39 +08:00
UniXNU Docs bd127c008c Merge pull request #100 from smeng9/build/linux-kernel-step
Build kernel on Linux
2026-10-24 19:48:50 +08:00
smeng9andClaude Opus 5.5 6ff68667e5 docs: describe the kernel step on a Linux host
Add the Linux toolchain to the requirements and a Linux host section to
the build page, in English and Simplified Chinese.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 19:48:06 +08:00
smeng9andClaude Opus 5.5 b0fe495af6 build(kernel): run the kernel step on Linux
On a Linux host the driver sets the environment of the
scripts/linux/setup-toolchain.py toolchain: the xcrun shim answers SDK
queries with the build tree's fakeroot, clang targets plain arm64 for
iOS 17, and CCC_OVERRIDE_OPTIONS turns off two warnings upstream clang
has and Apple clang does not (the archive builders use -Werror and
replay xnu's compile records, so only the clang driver sees them).

- build-xnu-4k-baseline.sh runs scripts/linux/prepare-xnu.py: source
  rewrites the xnu sources that assume Apple's tools (SHA/AES assembler
  macros, makesyscalls.sh under mawk, kextsymboltool and /dev/null) and
  installs TargetConditionals.h into the fakeroot; libs builds
  libcc_kext.a from compiler-rt's cc_kext profile sources. xnu's make
  also gets the host compiler, mig and the machine sizes a Mac supplies.
  ditto becomes cp.
- build-firehose.sh compiles libfirehose_kernel from its xcconfig.
- build-corecrypto-14.py reads project.pbxproj with scripts/pbxproj.py
  (same JSON as plutil for all 13,112 objects).
- The kernelcache is decoded with lzfse.

The macOS path is unchanged apart from ditto. Built from the same
sources and configuration on Linux and with Xcode 27.1, the kernels have
the same global symbols, linked objects, archive symbols, 1,265
kalloc_type signatures, and prelink bindings and kexts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 19:48:06 +08:00
smeng9andClaude Opus 5.5 6dc20ebe08 build(linux): install the kernel step toolchain on a Linux host
scripts/linux/setup-toolchain.py, run once as root, builds into
/opt/unixnu-linux (or PREFIX, or $UNIXNU_TOOLCHAIN):

- clang from llvm-project 58c46bae2118 with llvm-xnu-builtin-type.patch,
  which adds __builtin_xnu_type_signature, __builtin_xnu_type_summary,
  __builtin_xnu_types_compatible and xnu_usage_semantics; kalloc.h uses
  the builtins with no fallback;
- cctools-port 1030.6.3-ld64-956.6 (its master, ld64-609, corrupts the
  kernel link), with libdispatch for ld64;
- mig and migcom from bootstrap_cmds-138;
- iig-port, with iig-port-darwin-target.patch;
- xnu-host-cc, the host compiler for xnu's SETUP tools;
- lzfse for the kernelcache.

It installs the Command Line Tools shims (clang, clang++, cc, install,
gm4) under the prefix and xcrun, plutil and codesign in /usr/bin, where
xnu's makefiles call them. libmacho.a and libstuff.a go to /usr/lib and
libdispatch to /usr/local. Each step is skipped when its output exists.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 19:48:06 +08:00
smeng9andClaude Opus 5.5 6c9de1b4a6 fix(patches): build the legacy display register probe only with XNU_NATIVE_LEGACY_DISPLAY
offline-component-load-probes.patch called native_legacy_display_probe()
from the IOMobileGraphicsFamily load probe in bsd_init.c behind a boot
argument only. A configuration without the legacy display driver then
fails the kernel link with an undefined native_legacy_display_probe,
as examples/device/configs/example_defconfig does. Guard the block with
XNU_NATIVE_LEGACY_DISPLAY, which bsd_init.o already receives, as the
second call site in the same patch does.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 19:48:06 +08:00
UniXNU Docs 1c409e38f8 Merge pull request #105 from UniXNU/docs/new-devices-and-drivers
UniXNU Docs: add the new device ports and community drivers
2026-10-24 19:25:09 +08:00
UniXNU Docs 23281b2c09 docs: add the new device ports and community drivers 2026-10-24 19:24:56 +08:00
UniXNU Docs 497f8423ec Merge pull request #97 from luuu20309/polaris-port
docs: add polaris (Xiaomi Mi MIX 2S) community port page
2026-10-24 19:23:27 +08:00
UniXNU Docs 14f0717ec3 Merge pull request #98 from ghidgdsr/malachite-port
docs: add the malachite (MT6878) port
2026-10-24 19:23:24 +08:00
UniXNU Docs 80da398dd1 Merge pull request #96 from ShueiTsuki/pandora-state
docs: update the Xiaomi 17 Pro (pandora) port state
2026-10-24 19:23:22 +08:00
UniXNU Docs 51115ee27c Merge pull request #99 from Chengdong-Yu/pong-status
Update Pong device status
2026-10-24 19:23:20 +08:00
bluseliu50 c5a744a5ef Merge pull request #104 from UniXNU/docs/driver-catalog
docs: add the official and community driver catalog
2026-10-24 18:54:36 +08:00
bluseliu50 aeeee933ee docs: add the official and community driver catalog 2026-10-24 18:54:24 +08:00
bluseliu50 2cee14a77f Merge pull request #103 from UniXNU/docs/driver-repository-rules
docs: require one repository per driver and the unixnu topic
2026-10-24 18:33:04 +08:00
bluseliu50 7307269940 docs: require one repository per driver and the unixnu topic 2026-10-24 18:32:52 +08:00
luuu20309 94ca02af33 docs: polaris platform stage verified on hardware 2026-10-24 16:38:04 +08:00
desktop a8215c6c37 Update Pong device status 2026-10-23 22:11:24 -07:00
ghidgdsrandClaude Sonnet 5.5 40aad3ccd7 docs: add the malachite (MT6878) port
The POCO X7 / Redmi Note 14 Pro 5G reaches the iOS 16.5 userland with
HackiOS's xnuloader and uefi-malachite.  The UEFI boot path goes straight
into the XNU loader and has no boot menu; the userland does not start
properly yet, and lsd and usermanagerd log errors frequently while the cause
is being located.  The page records the stage table and the build and flash
commands; the English and Chinese pages are kept in sync.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-24 09:41:43 +08:00
luuu20309 5b673910b1 docs: add polaris (Xiaomi Mi MIX 2S) community port page 2026-10-24 05:16:34 +08:00
ShueiTsukiandClaude Opus 5.5 cf2fb845cf docs: pandora runs the original AMFI and passes a user-space GPU test
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 01:59:26 +08:00
ShueiTsukiandClaude Opus 5.5 e978422b53 docs: update the Xiaomi 17 Pro (pandora) port state
Home screen with wallpaper and widgets; the Adreno 840 kernel driver runs
command buffers and has a NativeAdreno-ABI user client, no rendering yet.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 01:57:59 +08:00
UniXNU Docs 1a01c2afa1 UniXNU Docs: individual pages for the remaining community ports 2026-10-23 23:24:05 +08:00
UniXNU Docs cbee05d90d docs: add individual pages for the remaining community ports 2026-10-23 23:23:49 +08:00
UniXNU Docs 41780f71bd Merge pull request #94 from UniXNU/docs/community-repository-index
docs: complete the community repository index
2026-10-23 23:00:13 +08:00
UniXNU Docs 6f95803ec5 docs: complete the community repository index 2026-10-23 22:59:57 +08:00
UniXNU Docs c13003fef8 Merge pull request #93 from UniXNU/docs/a04br3-port
docs: add the Benesse TAB-A04-BR3 port
2026-10-23 21:47:37 +08:00
UniXNU Docs c6100f92dc docs: add the Benesse TAB-A04-BR3 port 2026-10-23 21:47:23 +08:00
UniXNU Docs 35f7a9ed6a Merge pull request #92 from UniXNU/docs/myron-port
docs: add the myron core and driver forks
2026-10-23 20:47:50 +08:00
UniXNU Docs f5c0d663c2 docs: add the myron core and driver forks 2026-10-23 20:47:37 +08:00
UniXNU Docs 3bba4e77b7 Merge pull request #91 from UniXNU/docs/pong-port
docs: add the Nothing Phone (2) pong port
2026-10-23 20:33:51 +08:00
UniXNU Docs f833f05e7a docs: add the Nothing Phone (2) pong port 2026-10-23 20:33:37 +08:00
bluseliu50 52d18cef78 feat(scripts): key the shader cache to the translator build and allow paths in kernel arguments
The bridge build applies the padded-row alias patch and passes a runtime id derived from the translator pin and its patches, so primed shaders survive until the translator changes. Kernel argument values may now contain a slash.
2026-10-23 18:02:24 +08:00
bluseliu50 cb0749940c fix(xnu): search only a directory of the lower layer in a union lookup
A name that is a symlink in the base system and a directory in the mounted system made the union lookup fall into the symlink and fail with ENOTDIR. Add the matching lookup trace.
2026-10-23 18:02:24 +08:00