Scope: classify every file in xnu/patches/ (88 patches + 3 stagers) as needed or not for the bluejay GUI path, archive
what is Qualcomm-only. Evidence tag for every row: read from source (= VERIFIED-FROM-SOURCE) unless it says guess. Nothing here was run on
hardware. "file:line" is a line in the patched tree (xnu-8796.141.3 + the stack) unless a NNNN: prefix says it is a line
inside the .patch file. "Old" numbers are the numbers before the renumbering of this change; "new" are the current
ones (map: xnu/patches-archive/README.md).
- KEEP-CORE: generic XNU / iOS-userland compatibility, needed on any board that runs this stack.
- KEEP-BLUEJAY: gs101-specific, or shared code the gs101 code is built on.
- SWEET-ONLY: Qualcomm SM7150 hardware driver, unused when the ADT says google bluejay.
- DIAGNOSTIC: debug / log / trace aids; kept.
- SUPERSEDED: fully replaced by a later patch. None qualifies: 0035 rewrites 35 lines of 0025, 0053 rewrites 4 of 0051, 0075 rewrites 13 of 0073, 0084 rewrites parts of 0072/0073, but each earlier patch still creates the file or the code the later one edits. Squashing them would only churn history, so they stay.
Both boards build the same kernel (MACHINE_CONFIG=SWEET, ARM64_BOARD_CONFIG_SWEET, pexpert/pexpert/arm64/board_config.h:100),
so there is no compile-time board switch. Selection happens at run time:
- ADT root
compatiblekeepsxiaomi,sweeton every board soSweetPlatformExpertmatches (tools/mkadt.py:255,iokit/KernelConfigTables.cpp:39-41); the cpu nodes use the personality keyqcom,kryo470on every board (tools/mkadt.py:137). - gs101 selection by ADT node:
/sweet-ufscompatiblegoogle,gs101-ufs(bsd/dev/sweet_ufs.c:617),/sweet-usbgoogle,gs101-dwusb3(bsd/dev/sweet_usb.c:889-912),/sweet-reset(bsd/dev/sweet_restart.c:7);tools/mkadt.py:233-248only emits the last two for boards withusb_base/pmu_baseinsoc.json. - The Qualcomm drivers had no hardware check:
sweet_keys_init()andsweet_touch_init()were called unconditionally fromsweet_ufs_init()and mapped Qualcomm physical addresses (sweet_keys.c:126-140); their only off switch is the boot-arg (sweetkeys=0,sweettouch=0), whichtools/build-xnu-image.sh:19passes. So on bluejay they were disabled by boot-args, not by the ADT. That is why archiving them is safe and also removes a foot-gun (a bluejay image without those boot-args would have touched SM7150 MMIO). sweet_usb_probe()still runs the Qualcomm probe when no/sweet-usbgs101 node is present (defaultsweetusb=1, read-only,sweet_usb.c:102-108),SweetBatterytouches SPMI only withsweetbattery=1(SweetBattery.cpp:3,:267).
| Old | New | Name | Class | Evidence (read from source) | Dependents | Action |
|---|---|---|---|---|---|---|
| 0001 | 0001 | new-clang-drop-removed-auto-var-init-flag |
KEEP-CORE | Drops a clang flag the CI toolchain no longer has (makedefs/MakeInc.def); ungated build fix | none | keep |
| 0002 | 0002 | new-clang-backport-UIO_STACKBUF |
KEEP-CORE | Backports UIO_STACKBUF for new clang (bsd/sys/uio_internal.h); ungated | none | keep |
| 0003 | 0003 | sweet-framebuffer-serial-console |
KEEP-CORE | Framebuffer text console from ADT node "sweet-fbcon" (pexpert/arm/pe_serial.c:706); mkadt.py:197 emits it for every board | 0012 (same file), 0017 (protos.h) | keep |
| 0004 | 0004 | sweet-machine-config |
KEEP-CORE | SWEET machine config (pexpert/pexpert/arm64/board_config.h:100); both boards build with MACHINE_CONFIG=SWEET | every later SWEET-gated hunk | keep |
| 0005 | 0005 | non-pac-build-fixes |
KEEP-CORE | Non-PAC build fix in osfmk/arm/pmap/pmap.h; gs101 cores run without PAC (xnu/AGENTS.md) | none | keep |
| 0006 | 0006 | sweet-master-config-open-source-asm-pmap |
KEEP-CORE | config/MASTER.arm64.sweet: open-source asm/pmap config | 0007, 0008, 0021, 0026, 0037, 0057 (same file) | keep |
| 0007 | 0007 | sweet-stub-apple-internal-headers |
KEEP-CORE | Stubs Apple-internal headers (sart.h, uat.h, tunables.s) | none | keep |
| 0008 | 0008 | sweet-fill-closed-lib-gaps-kpc-stub |
KEEP-CORE | Fills closed-library gaps (kpc stub, amcc_rorgn); needed to link any SWEET kernel | none | keep |
| 0009 | 0009 | sweet-drop-apple-soc-only-exports |
KEEP-CORE | Drops Apple-SoC-only exports from config/Private*.exports | none | keep |
| 0010 | 0010 | sweet-early-framebuffer-debug |
KEEP-CORE | Early framebuffer debug (osfmk/arm64/sweet_early.c); fb address comes from the ADT, not a constant | 0012 | keep |
| 0011 | 0011 | sweet-physmap-alignment-padding |
KEEP-CORE | Physmap alignment padding (arm_vm_init.c); generic | none | keep |
| 0012 | 0012 | sweet-keep-debug-console-after-ttbr0 |
KEEP-CORE | Keeps the debug console alive after the TTBR0 switch; generic | none | keep |
| 0013 | 0013 | sweet-kmem-rng-without-corecrypto |
KEEP-CORE | kmem RNG without corecrypto (osfmk/vm/vm_kern.c) | none | keep |
| 0014 | 0014 | sweet-kernel-hmac-prng |
KEEP-CORE | Kernel HMAC PRNG without corecrypto | none | keep |
| 0015 | 0015 | sweet-unavailable-trust-cache-runtime |
KEEP-CORE | Trust cache runtime marked unavailable (bsd/kern/kern_trustcache.c) | none | keep |
| 0016 | 0016 | sweet-device-tree-platform-expert |
KEEP-CORE | SweetPlatformExpert matches IONameMatch xiaomi,sweet (iokit/KernelConfigTables.cpp:39-41); mkadt.py:255 keeps that string in the bluejay ADT | 0046, 0059, 0085 (same file) | keep |
| 0017 | 0017 | sweet-device-tree-virtual-timer-irq |
KEEP-CORE | Virtual-timer IRQ read from the ADT gic node (pexpert/arm/pe_fiq.c:109); soc.json supplies vtimer_intid | none | keep |
| 0018 | 0018 | sweet-boot-cpu-driver |
KEEP-CORE | SweetCPU matches qcom,kryo470, a personality key mkadt.py:137 uses on every board | 0065, 0078 | keep |
| 0019 | - | 0019-stage-libpthread.sh |
KEEP-CORE | Stager: fetches the pinned source and writes it under the tree before the .patch files (dxb runs patches/*.sh first); MACHINE_CONFIG=SWEET only | its .patch of the same number | keep |
| 0019 | 0019 | sweet-builtin-pthread |
KEEP-CORE | Staging script: pinned libpthread (xnu/patches/0019-stage-libpthread.sh), runs before the .patch files | patch 0019 (same number) | keep |
| 0020 | - | 0020-stage-bearssl.sh |
KEEP-CORE | Stager: fetches the pinned source and writes it under the tree before the .patch files (dxb runs patches/*.sh first); MACHINE_CONFIG=SWEET only | its .patch of the same number | keep |
| 0020 | 0020 | sweet-portable-aes-cbc |
KEEP-CORE | Portable BearSSL AES (libkern/crypto/sweet_aes*.c) + stager 0020-stage-bearssl.sh | 0027, 0032, 0033 (libkern/conf/files) | keep |
| 0021 | 0021 | sweet-mockfs-ramdisk-root |
DIAGNOSTIC | mockfs ramdisk root (rd=md0): used by tools/qemu-sweet.py; bluejay boots rd=ufsroot0. Generic, harmless | 0022, 0024 | keep |
| 0022 | 0022 | sweet-ramdisk-root-without-iomedia |
DIAGNOSTIC | Ramdisk root without IOMedia (iokit/Kernel/IOService.cpp); QEMU path | 0086 (same file) | keep |
| 0023 | 0023 | sweet-builtin-sha256-for-libkern |
KEEP-CORE | Built-in SHA-256 for libkern (corecrypto_sha2.c) | 0033 | keep |
| 0024 | 0024 | sweet-mockfs-virtual-ramdisk-io |
DIAGNOSTIC | mockfs virtual ramdisk I/O; QEMU path | 0026 (mockfs_vfsops.c) | keep |
| 0025 | 0025 | sweet-builtin-amfi-no-entitlements |
KEEP-CORE | Built-in AMFI policy, no entitlements (bsd/kern/sweet_amfi.c:25) | 0035, 0036, 0050, 0064, 0087 | keep |
| 0026 | - | 0026-stage-hfs.sh |
KEEP-CORE | Stager: fetches the pinned source and writes it under the tree before the .patch files (dxb runs patches/*.sh first); MACHINE_CONFIG=SWEET only | its .patch of the same number | keep |
| 0026 | 0026 | sweet-builtin-hfs |
KEEP-CORE | Built-in Apple HFS+ (bsd/sweet_hfs, staged by 0026-stage-hfs.sh); iOS root is HFS+ | 0031, 0041, 0052 | keep |
| 0027 | 0027 | sweet-bearssl-md5 |
KEEP-CORE | BearSSL MD5 for libkern | none | keep |
| 0028 | 0028 | sweet-ufs-root-device |
KEEP-BLUEJAY | UFS root device (bsd/dev/sweet_ufs.c); node /sweet-ufs, gs101 quirks added by 0082 (sweet_ufs.c:617) | 0030, 0034, 0069, 0082, ... | keep |
| 0029 | 0029 | sweet-unsealed-root-volume |
KEEP-CORE | Unsealed root volume (bsd/kern/bsd_init.c) | none | keep |
| 0030 | 0030 | sweet-ufs-writes |
KEEP-BLUEJAY | UFS writes, only with boot-arg ufsrw=1 (sweet_ufs.c:17); used by --rw images | 0034, 0069, 0082 | keep |
| 0031 | 0031 | sweet-read-write-root |
KEEP-CORE | rootrw=1 root mounted read-write (bsd/vfs/vfs_subr.c:1263) | none | keep |
| 0032 | 0032 | sweet-bearssl-sha1 |
KEEP-CORE | BearSSL SHA-1 | none | keep |
| 0033 | 0033 | sweet-bearssl-sha384-sha512 |
KEEP-CORE | BearSSL SHA-384/512 | none | keep |
| 0034 | 0034 | sweet-ufs-dma-above-4g |
KEEP-BLUEJAY | UFS DMA addressing above 4 GiB in sweet_ufs.c (patch hunk 0034:1-43); docs/PLAN.md:47 lists it in the gs101 UFS adaptation set (guess: gs101 needs it too) | none | keep |
| 0035 | 0035 | sweet-amfi-entitlements-platform-binaries |
KEEP-CORE | AMFI entitlements and platform binaries (SweetEntitlements.cpp); rewrites 35 lines of 0025 but does not replace it (0025 still creates the file) | 0036, 0050, 0064, 0087 | keep |
| 0036 | 0036 | sweet-amfi-cs-signed |
KEEP-CORE | AMFI cs-signed handling | none | keep |
| 0037 | 0037 | sweet-config-bindfs |
KEEP-CORE | Adds bindfs to config/MASTER.arm64.sweet | none | keep |
| 0038 | 0038 | sweet-applekeystore |
KEEP-CORE | AppleKeyStore stub (SweetKeyStore.cpp); KernelConfigTables.cpp:51 | 0043, 0055 | keep |
| 0039 | 0039 | sweet-coredump-default-off |
KEEP-CORE | Coredump default off (kern_core.c) | none | keep |
| 0040 | 0040 | sweet-iowatchdog |
KEEP-CORE | IOWatchdog stub service, no hardware (SweetWatchdog.cpp) | 0045 | keep |
| 0041 | 0041 | sweet-hfs-link-notes |
KEEP-CORE | HFS link notes (hfs_catalog.c) | none | keep |
| 0042 | 0042 | sweet-short-exec-log |
DIAGNOSTIC | Short exec log (bsd/kern/kern_exec.c:7414, SWEET-gated printf) | none | keep |
| 0043 | 0043 | sweet-console-crash-log |
DIAGNOSTIC | Console crash log (osfmk/kern/exception.c, kern_exit.c) | 0044, 0051, 0053, 0055, 0066 | keep |
| 0044 | 0044 | sweet-crash-log-reason |
DIAGNOSTIC | Crash log reason | none | keep |
| 0045 | 0045 | sweet-iowatchdog-pmu-primary |
KEEP-CORE | watchdogd needs an IOPMUPrimary service on any board (SweetWatchdog.cpp:13-15); mkadt.py wdt node has no PMU | none | keep |
| 0046 | 0046 | sweet-iosurface-iomfb |
KEEP-CORE | Built-in IOSurface + IOMobileFramebuffer (SweetSurface/SweetFramebuffer.cpp); GUI path | 0054, 0056, 0061, 0067, 0068, 0079, 0086 | keep |
| 0047 | 0047 | sweet-persistent-console-log |
DIAGNOSTIC | Persistent console log ring in sweet_ufs.c; polled by restart and QR (sweet_ufs.c:54) | 0069, 0088 | keep |
| 0048 | 0048 | sweet-devnull-tee |
DIAGNOSTIC | sweetnull: /dev/null tee for named processes (bsd/dev/mem.c:161) | none | keep |
| 0049 | 0049 | sweet-iokit-trace |
DIAGNOSTIC | IOKit user-client trace (IOUserClient.cpp:2618, boot-arg sweetiolog) | 0054 | keep |
| 0050 | 0050 | sweet-sandbox-policy |
KEEP-CORE | Permissive Sandbox policy (sweet_amfi.c) | 0087 | keep |
| 0051 | 0051 | sweet-crash-heap-strings |
DIAGNOSTIC | Crash heap strings | 0053 | keep |
| 0052 | 0052 | sweet-hfs-rename-swap |
KEEP-CORE | HFS rename-swap (kpi_vfs.c) | none | keep |
| 0053 | 0053 | sweet-crash-scan-springboard |
DIAGNOSTIC | Crash scan SpringBoard (rewrites 4 lines of 0051, does not replace it) | none | keep |
| 0054 | 0054 | sweet-process-sampler |
DIAGNOSTIC | Process sampler (bsd/dev/sweet_sample.c:67, boot-arg sweetsample) | 0055 | keep |
| 0055 | 0055 | sweet-aks-ext-state-sampler-depth |
DIAGNOSTIC | AKS ext-state, sampler depth | none | keep |
| 0056 | 0056 | sweet-fb-throttled-present |
KEEP-CORE | Throttled panel copy; GUI performance | 0061/0079 (same file) | keep |
| 0057 | 0057 | sweet-no-ext-resolver |
KEEP-CORE | Config: no external identity resolver | none | keep |
| 0058 | 0058 | sweet-hid-event-services |
KEEP-CORE | HID event services (IOHIDFamily-1915 user client, SweetHID.cpp); iOS needs them on every board | 0061, 0071; sweet_hid_touch()/sweet_hid_key() are the entry points input drivers call | keep |
| 0059 | 0059 | sweet-iphone-identity |
KEEP-CORE | iPhone X identity (kern_mib.c, SweetPlatformExpert.cpp); mkadt.py:255 compatible[0]=D22AP | 0085 | keep |
| 0060 | - | sweet-keys-touch-drivers |
SWEET-ONLY | Qualcomm SPMI arbiter keys (sweet_keys.c) and GENI I2C touch (sweet_touch.c). Only gate is boot-arg sweetkeys/sweettouch (sweet_keys.c:126-136, sweet_touch.c:639-650); bluejay images pass =0 (tools/build-xnu-image.sh:19). Nothing else calls them (grep sweet_keys_init | sweet_touch_init: sweet_ufs.c only) | ARCHIVED with 0063 and the touch part of 0062. Context of 0072, 0083, 0085, 0088 (conf/files, sweet_ufs.c) regenerated |
| 0061 | 0060 | sweet-iphone-x-display-size |
KEEP-CORE | Presents the display as 1125x2436 for UIKit (SweetFramebuffer.cpp); mkadt.py:192-195 canvas size is board independent | none | keep |
| 0062 | - | sweet-touch-power-battery |
SWEET-ONLY | Mixed. RPMh L11C vote (sweet_rpmh.c) and sweet_touch.c edits are Qualcomm-only, called only from touch (sweet_touch.c:578). The PM6150 battery (SweetBattery.cpp) is used by bluejay (static source; SPMI read only with sweetbattery=1, SweetBattery.cpp:3) and needs sweet_spmi.c | SPLIT: touch+rpmh archived, spmi+battery kept as new 0061. 0063 and 0072 depend on the touch/rpmh files | ARCHIVE (split) |
| 0063 | - | sweet-goodix-geni-packing |
SWEET-ONLY | GENI FIFO packing and Goodix GT9896 protocol, edits only sweet_touch.c (patch hunks 0063:3-310) | ARCHIVED with 0060; nothing else touches sweet_touch.c | ARCHIVE |
| 0064 | 0062 | sweet-priv-work-interval |
KEEP-CORE | Grants PRIV_WORK_INTERVAL (sweet_amfi.c); UIKit needs it on any board | 0087 | keep |
| 0065 | 0063 | sweet-smp-psci |
KEEP-CORE | SMP via PSCI CPU_ON (SweetCPU.cpp:2,30); PSCI is SoC independent, bluejay uses cpus=N (osfmk/arm64/machine_routines.c:957-962) | 0078 | keep |
| 0066 | 0064 | sweet-crash-fault-region |
DIAGNOSTIC | Crash fault region | none | keep |
| 0067 | 0065 | sweet-console-mute |
KEEP-CORE | Console mute once the GUI presents (serial_console.c:272, sweetfb_noconsole) | none | keep |
| 0068 | 0066 | sweet-surface-lookup-cached |
KEEP-CORE | IOSurface lookup semantics (SweetSurface.cpp) | none | keep |
| 0069 | 0067 | sweet-ufs-faster |
KEEP-BLUEJAY | Batched UFS log flushes; edits sweet_ufs.c lines of 0028 and 0047 | 0082 | keep |
| 0070 | 0068 | sweet-pid-hibernate |
KEEP-CORE | pid_hibernate syscall for SpringBoard (syscalls.master:654, vm_unix.c) | none | keep |
| 0071 | 0069 | sweet-touch-edge |
KEEP-CORE | Edge flag in SweetHIDTouch (SweetHID.cpp), a UIKit gesture requirement; HID layer is shared. Not Qualcomm | none | keep |
| 0072 | 0070 | sweet-usb-probe |
KEEP-BLUEJAY | USB probe: Qualcomm GCC/QUSB2 path plus the gs101 branch (sweet_usb.c:107-108 calls sweet_usb_probe_gs101). Default sweetusb=1 is read-only (sweet_usb.c:102-103). Base file of the gs101 gadget | 0073-0077, 0081, 0084 all edit sweet_usb.c. CANNOT be archived | keep |
| 0073 | 0071 | sweet-usb-device-ep0 |
KEEP-BLUEJAY | DWC3 ep0 gadget; offsets identical on gs101 (sweet_usb.c:81 comment); shim/usbgadget.c ports it | 0075, 0084 (rewrites 11 of its lines) | keep |
| 0074 | 0072 | sweet-usb-vbus-override |
SWEET-ONLY | Qualcomm QSCRATCH VBUS override (QSCRATCH_PA 0x0a6f8800). Dead on gs101 (0084 patch:271-273 skips it with ud.gs101). KEPT: 0084 edits these exact lines, so removing 0074 means regenerating 0084 by hand | 0084 (hunk at patch:271-278 uses the line 0074 adds) | keep |
| 0075 | 0073 | sweet-usb-ecm |
KEEP-BLUEJAY | CDC-ECM function and ue0 ifnet; shared by gs101 (rewrites 13 lines of 0073) | 0076, 0077, 0081, 0084 | keep |
| 0076 | 0074 | sweet-usb-rx-mbuf |
KEEP-BLUEJAY | RX into one cluster mbuf; generic | 0084 | keep |
| 0077 | 0075 | sweet-usb-live-log |
KEEP-BLUEJAY | Live log over USB (sweet_log_copy) | 0084 | keep |
| 0078 | 0076 | sweet-smp-8-cores |
KEEP-CORE | All 8 cores (SWEET.h:26, SweetCPU.cpp); bluejay ADT emits one cpu node per soc.json cpu_mpidrs entry (tools/mkadt.py cpu_nodes loop) | none | keep |
| 0079 | 0077 | sweet-display-power |
KEEP-CORE | Display off/on via IOMFB selector 12 (SweetFramebuffer.cpp); no panel registers | none | keep |
| 0080 | 0078 | sweet-net-trace |
DIAGNOSTIC | SWEET NET: route/address trace (rtsock.c, in.c:1221) | none | keep |
| 0081 | 0079 | sweet-usb-link-state |
KEEP-BLUEJAY | USB link-state events (sweet_usb.c) | 0084 | keep |
| 0082 | 0080 | sweet-ufs-gs101 |
KEEP-BLUEJAY | gs101 UFS: su.gs101 from compatible google,gs101-ufs (sweet_ufs.c:617+, quirks :155-270) | none | keep |
| 0083 | 0081 | sweet-qr-log |
KEEP-BLUEJAY | QR log channel (sweet_qr.c, sweetqr boot-arg sweet_qr.c:154); generated by tools/make-qr-patch.py; gs101 SHA3-free pragma | 0088 | keep |
| 0084 | 0082 | sweet-usb-gs101 |
KEEP-BLUEJAY | gs101 DWC3 gadget; selected by ADT /sweet-usb compatible google,gs101-dwusb3 (sweet_usb.c:889-912) | none | keep |
| 0085 | 0083 | sweet-restart |
KEEP-BLUEJAY | Software restart through the gs101 PMU SMC; ADT node /sweet-reset only on bluejay (sweet_restart.c:7,93) | 0088 | keep |
| 0086 | 0084 | sweet-iokit-quiet-accelerator |
KEEP-CORE | Quiet accelerator IOKit lookups (IOStartIOKit.cpp, IOService.cpp) | none | keep |
| 0087 | 0085 | sweet-sandbox-container-path-appex |
KEEP-CORE | Sandbox container path for appex (sweet_amfi.c) | none | keep |
| 0088 | 0086 | sweet-restart-poll |
KEEP-BLUEJAY | Restart deadline polled from log and QR threads (sweet_ufs.c:54, sweet_qr.c:14). Replaces the first attempt in 0085 ("rewritten + 0088", HANDOFF) but 0085 still creates the file | none | keep |
Candidates examined: every Qualcomm-flavoured patch (0045, 0060-0063, 0065, 0071, 0072-0081, 0078, 0084).
| Candidate | Verdict | Why |
|---|---|---|
| 0060 keys+touch | ARCHIVE | Only caller is sweet_ufs_init(); HID entry points sweet_hid_key/touch stay in 0058. Dependents: 0062 (touch hunks), 0063, and context in 0072, 0083, 0085, 0088 (regenerated, see below). |
| 0063 goodix | ARCHIVE | Edits only sweet_touch.c, which dies with 0060. No other dependent. |
| 0062 touch-power-battery | SPLIT | sweet_rpmh.c is called only by sweet_touch.c:578; touch hunks go. SweetBattery.cpp + sweet_spmi.c + its personality in KernelConfigTables.cpp are used by the bluejay GUI (battery source), SweetBattery calls sweet_spmi_init/read, so they stay as new 0061. The SPMI code is itself Qualcomm; removing it would mean editing SweetBattery.cpp, not just dropping a patch, so it is KEPT (unsure -> keep). |
| 0074 vbus override | KEEP | Qualcomm-only code, but 0084 modifies the lines it adds (0084:271-278: vm_offset_t qs = ud.gs101 ? 0 : ml_io_map(QSCRATCH_PA, 0x100); and the if (qs != 0) block). Archiving it means rewriting 0084 by hand. |
| 0072-0077, 0081 usb | KEEP | All edit sweet_usb.c, the file 0084 extends; DWC3 register offsets are the same on gs101 (sweet_usb.c:81). |
| 0065, 0078 smp | KEEP | PSCI CPU_ON is architectural; bluejay uses cpus=N (machine_routines.c:957-962). |
| 0045 iowatchdog pmu | KEEP | watchdogd needs an IOPMUPrimary service on any board (SweetWatchdog.cpp:13-15); no Qualcomm access. |
| 0061 display size, 0071 touch edge | KEEP | Present-size and HID semantics UIKit needs; independent of the touch controller (sweet_hid_touch() is the generic entry). |
| 0021/0022/0024 ramdisk root | KEEP (DIAGNOSTIC) | Used by tools/qemu-sweet.py (rd=md0); not Qualcomm hardware. |
Dependent hunks in the 4 patches that were regenerated (context only; the lines they add are unchanged), new numbers:
- 0070 (old 0072):
bsd/conf/filescontext (sweet_keys.c,sweet_touch.c,sweet_rpmh.c),externcontext insweet_ufs.c, and thesweet_usb_probe()call site (now aftersweet_sample_start();). - 0081 (old 0083), 0083 (old 0085):
bsd/conf/filescontext lines. - 0086 (old 0088):
externcontext insweet_ufs.c.
Result of the archive: the final tree is the old tree minus bsd/dev/sweet_keys.c, sweet_rpmh.c, sweet_touch.c, the two
extern lines and three call lines in sweet_ufs.c, and three bsd/conf/files lines (diff -rq of both fully patched trees, see
verification).
- 0074 and the Qualcomm branches inside 0072-0081 (GCC clock / GDSC / QUSB2 probe, QSCRATCH): dead on gs101 but entangled with 0084.
Removing them needs a rewritten
sweet_usb.c(one fresh patch), not a patch deletion. Left for a separate, hardware-tested change. sweet_spmi.c(Qualcomm SPMI) only forsweetbattery=1: see above.tools/build-xnu-image.shstill passessweetkeys=0 sweettouch=0; unknown boot-args are ignored, left as is.- The
SWEETnaming (SweetCPU,sweet_ufs.c, ...) stays; it is the machine-config name for both boards. - Research notes (
docs/research/0*-1*.md,docs/reviews,docs/tasks,UPSTREAM_README.md,docs/HANDOFF.md,NOTES.md,docs/CASE_STUDY.md) keep the old patch numbers; use the map inxnu/patches-archive/README.md.
Pristine source: apple-oss-distributions/xnu tag xnu-8796.141.3 (what the workflow's dxb pin resolves for macOS 13.5,
release.json macos-135), fetched into an empty dir. The three stagers were run first with the real network fetches (a stub
xcrun supplied the empty TargetConditionals.h), then the .patch files with git apply --check + git apply in order.
Run on the old stack: 88 of 88 ok. Run on the new stack: 86 of 86 ok. The dxb sed tweaks and dxb's own patches (not ours) were
not applied. Exact commands and outputs are in the commit message of the archive commit and the task report.