Commit Graph
174 Commits
Author SHA1 Message Date
UniXNU Docs 40d23772d9 docs: update device states and the macOS runner guide 2026-10-23 17:18:56 +08:00
UniXNU Docs 878ddd87b5 Merge pull request #80 from reAAAq/docs/umi-port
docs: add Xiaomi Mi 10 (umi) community port
2026-10-23 17:14:53 +08:00
UniXNU Docs cd25db47fd Merge pull request #89 from Dracen-W/docs/merlinx-port
docs: add the Redmi Note 9 (merlinx) port
2026-10-23 17:14:53 +08:00
bluseliu50 ce83e49dac Merge pull request #87 from xVanTuring/perf/signature-hash-cache
perf(patches): read signed files in 1 MiB pieces, the dyld cache uncached
2026-10-23 17:14:20 +08:00
bluseliu50 ab0de81a38 Merge pull request #86 from xVanTuring/fix/gpu-addon-parent
fix(patches): create /private/var/ngpu itself for the GPU addon
2026-10-23 17:14:20 +08:00
BN1337 80cc44de67 docs(umi): mark XNU touch as hardware verified 2026-10-23 14:53:42 +08:00
Dracen 6a6101c6c7 docs: clarify the merlinx key mapping and boot partition 2026-10-23 01:58:56 +00:00
Dracen ea81ada03e docs: add the Redmi Note 9 (merlinx) port 2026-10-23 01:47:44 +00:00
rpone f4916f7db0 chore(deps): take the Metal plugin whose scanout thread runs at user-interactive priority 2026-10-23 09:09:26 +08:00
xVanTuring 477e530a86 perf(patches): read signed files in 1 MiB pieces, the dyld cache uncached
cs_native4k_prepare reads the whole signed range of a file with 16K
page hashes before its signature is published. For the 3 GB dyld
shared cache that happens in launchd at every boot, and the cached
16 KiB reads filled the page cache: on the TB128FU free memory went
from 3.4 GB to 170 MB in the 42 s before the first daemon started, and
those daemons then started under memory pressure.

Read 1 MiB per vn_rdwr and use IO_NOCACHE for files above 32 MiB
(executables are faulted in right after their signature is added and
stay cached). Export the time spent in the reads and in the hashing
and the bytes read (cs_native4k_read_ticks, cs_native4k_hash_ticks,
cs_native4k_bytes) so a board can show what the boot pays.

TB128FU: free memory stays at 3.3 GB through the stall and the first
frame moved from 96 s to 86 s. The counters show 3141 MiB in 53 files,
28.9 s in the reads and 11.0 s hashing: the stall itself is bound by
the storage driver, so larger reads alone do not shorten it.
2026-10-23 07:43:23 +08:00
xVanTuring 119d7dcba1 fix(patches): create /private/var/ngpu itself for the GPU addon
native_gpu_addon_parents starts its mkdir walk after
"/private/var/ngpu/", so it creates the directories below ngpu but
never ngpu. A Data seed that never had add-gpu-plugin-data.py applied
has no ngpu, every file of the payload's addon then fails with ENOENT
and the overlay mounts fail too, although make-gpu-addon.py says the
kernel creates missing directories. Start the walk at the slash after
ngpu so ngpu is created first (EEXIST when it is there).

Seen on the TB128FU (skip-setup seed without the plugin data):
files=9 written=0 failed=9 error=2, mounts 1.2/1.2; with the fix
written=9 and both mounts 5.0, the Metal plugin loads in backboardd.
2026-10-23 07:43:21 +08:00
rpone 4abaef821c chore(deps): take the display driver that retires a GPU-copied swap early 2026-10-23 07:10:43 +08:00
rpone f5b7c8a01e fix(gpu): render in system memory with non-coherent render targets 2026-10-23 05:59:58 +08:00
rpone 89adc8ec0d ci(macos): publish only redacted text logs
The workflow is a build check. Kernels are linked against Apple's
kernelcache, payloads carry the platform seed and Apple content, and
userdata holds Apple's disk images, so none of them may be uploaded to a
public repository.

- Remove the kernel, payload and userdata uploads and the
  upload_userdata input.
- Upload only *.log files of the build, on success and failure, for 7
  days, after replacing the chip ID, the trust cache and Data seed URLs
  and signed URLs with ***, and skipping binary files.
- Write a step summary with the result of each build step.
2026-10-23 04:46:51 +08:00
rpone caad2d7369 ci(macos): rewrite the macOS build workflow
- Pin the runner to macos-26 and select Xcode by input (default 26.6)
  instead of the moving macos-latest label.
- Pass the workflow token to the kernel build so the DriverKit header
  listing is not rate limited.
- Install lld (no longer part of the llvm formula; the payload links
  the panic screen with ld.lld) and keep Homebrew LLVM off PATH, as on
  the development machines.
- Key the concurrency group on ref, device repository, device ref and
  defconfig, and stop cancelling running builds.
- Check the inputs, the defconfig, the Xcode path and the platform seed
  secret before installing or building anything.
- Read the trust cache and Data seed URLs from the event payload and
  mask them, so they do not appear in public logs.
- Drop the explicit fetch; the build step fetches the references it
  needs and no longer rewrites the device unixnu.lock.
- Let seed-data-grow.py find its submodule and build directory.
- Default to the kernel step and offer kernel plus payload without the
  userdata image.
- Upload the logs on failure, name artifacts per board and attempt,
  leave the skip-setup seed copy out of the payload artifact and store
  userdata uncompressed.
- Pin the actions to commits of their Node 24 releases and run steps
  with bash -eo pipefail.
2026-10-23 04:46:51 +08:00
rpone d12c96bf2c fix(kernel): authenticate the DriverKit header listing when a token is set
prepare-xnu-source.py lists Apple's xnu tree through the GitHub API without credentials. Hosted runners share the anonymous per-address quota and the bootstrap pass stops with HTTP 403 rate limit exceeded. Send GITHUB_TOKEN or GH_TOKEN, when set, to api.github.com and raw.githubusercontent.com only.
2026-10-23 04:46:51 +08:00
rpone dc21175e5a fix(gpu): render without hardware binning 2026-10-23 04:46:51 +08:00
UniXNU Docs 6da796fef5 Merge pull request #82 from UniXNU/docs/negroni-gta4l-bars
docs: add negroni and the second gta4l repository
2026-10-23 04:30:48 +08:00
UniXNU Docs 3445e09a4d docs: add negroni and the second gta4l repository 2026-10-23 04:27:18 +08:00
BN1337 2eeed3ba64 docs: add Xiaomi Mi 10 (umi) community port 2026-10-23 03:15:12 +08:00
bluseliu50 bad2c6ba09 fix(payload): keep Restart and Power off in the payload's boot menu
The payload's unixnu.toml replaces the built-in menu, which held the only Restart and Power off entries; the generated configuration now ends with both.
2026-10-23 02:55:22 +08:00
bluseliu50 df43ee1da1 feat(payload): add a confirmed install entry to the boot menu
board.toml [payload.install] adds a second boot menu entry with the same
kernel and Data seed behind a confirmation; each confirmation choice
appends its boot argument (the sheng board uses it for the Data reset).
2026-10-23 02:55:22 +08:00
bluseliu50 a861794a94 fix(package): show UniXNU once in the landscape menu header
The logo's wordmark already reads UniXNU; as in the portrait header, the landscape header draws the title only without the logo or when it says something else, and its provenance line reads version and source.
2026-10-23 02:55:17 +08:00
bluseliu50 47af8710e6 chore(touch): update the NativeHidInput pointer
Brings in multi-finger collection dispatch, finger validity and lifts by identifier.
2026-10-23 02:37:26 +08:00
bluseliu50 11c818217b feat(xnu): let a service's sandbox grant cover setting its properties
A service that names a process in NativeSandboxGrantProcess now also lets that process set its properties when the sandbox profile would refuse it, as the grant already does for opening its user client.
2026-10-23 02:36:30 +08:00
IssacL04 9fd45ef70c fix(storage): make backups optional and support macOS self-tests 2026-10-23 02:04:03 +08:00
IssacL04 1c71ba0136 feat(storage): add experimental dual-system partitioning 2026-10-23 02:04:03 +08:00
UniXNU Docs b2360badae Merge pull request #73 from ShueiTsuki/docs/pandora-port
docs: add Xiaomi 17 Pro (pandora) community port
2026-10-23 00:26:29 +08:00
UniXNU Docs 86740fd459 Merge pull request #74 from UniXNU/docs/qemu-metal
docs: record the QEMU Metal device on the Mac GPU
2026-10-23 00:25:41 +08:00
UniXNU Docs 2b1e3a9aee docs: record the QEMU Metal device on the Mac GPU 2026-10-23 00:25:30 +08:00
ShueiTsukiandClaude Opus 5.5 f91542814c docs: add Xiaomi 17 Pro (pandora) community port
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 00:12:04 +08:00
UniXNU Docs e19e517448 Merge pull request #72 from UniXNU/docs/sort-devices-by-completion
docs: sort community ports by completion
2026-10-22 23:28:35 +08:00
UniXNU Docs 3a430bc086 docs: sort community ports by completion 2026-10-22 23:28:21 +08:00
bluseliu50 8383686a2e chore(gpu): update the NativeMetal pointer
Metal processes render in system memory without concurrent binning,
which removes the GPU stall that froze the display.
2026-10-22 23:18:23 +08:00
UniXNU Docs 1bb87bd289 Merge pull request #70 from UniXNU/docs/latest-device-updates
docs: record the latest community device updates
2026-10-22 23:13:32 +08:00
UniXNU Docs fb756b11a3 docs: record the latest community device updates 2026-10-22 23:13:19 +08:00
UniXNU Docs 7d296968ca Merge pull request #68 from UniXNU/docs/device-status-scan
docs: update community device states from repository changes
2026-10-22 21:32:03 +08:00
UniXNU Docs 4340f431ff docs: update community device states from repository changes 2026-10-22 21:31:49 +08:00
UniXNU Docs a969863781 Merge pull request #56 from xVanTuring/docs/tb128fu-port
docs: add the tb128fu port
2026-10-22 21:23:41 +08:00
Sharky Wang 86c177b9bb Merge pull request #66 from xVanTuring/feat/entry-probe-reset
feat(payload): keep the entry probe's timed reset from the board file
2026-10-22 21:23:41 +08:00
Sharky Wang 1ce0f8d98e Merge pull request #62 from xVanTuring/feat/skip-setup-args
feat(payload): pass board arguments to the skip-setup tool, add --no-auto-dim
2026-10-22 21:23:41 +08:00
Sharky Wang b6c2d76821 Merge pull request #60 from xVanTuring/feat/owner-cache-volume-uuid
feat(patches): take the owner SystemOS volume UUID from the configuration
2026-10-22 21:23:41 +08:00
Sharky Wang 3292b23113 Merge pull request #59 from xVanTuring/feat/bridge-manifest-only
feat(scripts): write the bridge manifest without building
2026-10-22 21:23:41 +08:00
UniXNU Docs e4612fab11 docs: list the target IPSWs in the setup guide 2026-10-22 20:59:06 +08:00
xVanTuring d4d9d2819b feat(payload): keep the entry probe's timed reset from the board file
The payload ran patch-xnu-entry-probe.py only for panic_screen, always
with --no-reset. [payload] entry_probe_reset_delay now keeps the reset
(--reset-delay), and entry_probe_reset_after, _in, _occurrence and
_before move it after a given call (--reset-after, --in, --occurrence,
--reset-before), with or without the panic screen. Before the kernel
can draw, a reboot after the delay is the only sign that it got that
far. Without the new keys the call is unchanged.
2026-10-22 20:26:25 +08:00
bluseliu50 31506f7e6f Merge pull request #63 from UniXNU/fix/bindfs-force-root
fix(xnu): restore the bindfs force-root definition and getattr hunk
2026-10-22 19:34:34 +08:00
bluseliu50 bdeb134775 fix(xnu): restore the bindfs force-root definition and getattr hunk 2026-10-22 19:33:44 +08:00
xVanTuring 12c5d446e3 feat(payload): pass board arguments to the skip-setup tool, add --no-auto-dim
[payload] skip_setup_args (optional) is passed to skip_setup_tool after
the two paths, and the edited seed is cached by the hash of the base and
of those arguments.

seed-data-skip-setup.py --no-auto-dim also sets SBDisableAutoDim,
SBDontDimOrLockOnAC and SBDisableIdleSleep in com.apple.springboard, as
UniXNU-qemu's build-os-root.py does: a board without buttons or a working
idle timer otherwise turns its display off about 30 seconds after
SpringBoard starts and puts the system to sleep.
2026-10-22 19:04:37 +08:00
bluseliu50 d07f3c3fc4 fix(gpu): let Turnip bind host-import images at any offset
Turnip asked a dedicated allocation of every image made for external
memory, so an image over a no-copy buffer's host pages could not be
bound inside the buffer's import and each such texture fell back to a
shadow image copied in and out per pass. Ask it only for handle types
that carry per-image metadata, as the host-allocation format query
already reports.
2026-10-22 19:04:36 +08:00
xVanTuring bb385622c8 feat(patches): take the owner SystemOS volume UUID from the configuration
offline-owner-systemos-mount.patch mounted the SystemOS cryptex volume
by the sheng image's UUID. XNU_OWNER_CACHE_VOLUME_UUID
(CONFIG_XNU_OWNER_CACHE_VOLUME_UUID) now names it; the build writes it
into owner-data-volume.h next to the Data volume UUID and rebuilds
kern_exec.o when it changes. Without it the sheng value stays the
default.
2026-10-22 19:02:21 +08:00