mirror of
https://github.com/lucannez64/darling-lol.git
synced 2026-10-26 19:47:42 +00:00
Report hardware and software overviews from IOKit and sysctl in system_profiler
system_profiler now answers SPHardwareDataType and SPSoftwareDataType (and lists them in -listDataTypes). Model, serial number, platform UUID and provisioning UDID come from IOKit's IOPlatformExpertDevice via ioreg; CPU, cache and memory from sysctl; the OS version from sw_vers and uname. A field the guest does not provide is left out. #61 instead read a separate darling-smbios.conf written by a new generator (gen-darling-smbios.py), with hardcoded fallbacks (an Intel Core i9, macOS 14.7, SIP enabled). iokitd reads darling-platform.plist, so system_profiler and IOKit could report different serials and models on the same prefix, and the generator overwrote identities imported with configure-darling-platform.py. Reading the guest's own APIs keeps a single source of truth: configure-darling-platform.py remains the only way to set or provision an identity, and it is still never run by install or launch. tests/test_system_profiler.py runs the script under sh with stub guest commands and runs in CI. Split from #61. Co-authored-by: DevWebeloper <[email protected]> Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
603b5a168e
commit
34c3e4ae9f
4 files changed
+193
-3
No files matched your search
@@ -134,3 +134,15 @@ a per-prefix lock. Repeated writes preserve identifiers and unchanged files.
|
||||
Previewing a fresh identity generates a sample; only `--write` makes it stable.
|
||||
To restore host-derived defaults after provisioning, remove both identity files
|
||||
while stopped, so a later provisioning run cannot reimport the legacy copy.
|
||||
|
||||
## system_profiler
|
||||
|
||||
The prefix's `/usr/sbin/system_profiler` (installed by
|
||||
`tools/install-darling-system-profiler.py`) answers `SPHardwareDataType` and
|
||||
`SPSoftwareDataType` from the running guest: model, serial number, platform UUID
|
||||
and provisioning UDID from IOKit's `IOPlatformExpertDevice` (via `ioreg`), CPU,
|
||||
cache and memory from `sysctl`, and the OS version from `sw_vers` and `uname`. It
|
||||
keeps no identity of its own, so it reports the same values as IOKit, including any
|
||||
override saved by this tool. A field the guest does not provide is left out.
|
||||
`python3 -m unittest tests.test_system_profiler` checks the output with stub
|
||||
commands.
|
||||
Reference in new issue
Block a user