SW:NVRAM - AsahiLinux/docs GitHub Wiki

Types

  • string: A standard string.
  • binary: A URL-encoded string containing binary data.
  • boolean: A string with value of either true or false.
  • int: A decimal integer.
  • bin-int(n): A binary-encoded integer, little-endian, n bytes.
  • hex-int: A hexadecimal integer.
  • volume: A string of format <gpt-partition-type-uuid>:<gpt-partition-uuid>:<volume-group-uuid>. The GPT partition UUID seems to be a bit weird, with its first three components byteswapped.

Values

Boot

  • auto-boot: boolean: Whether to automatically boot. Setting this to false on at least the Mac M1 mini causes a boot failure;
  • boot-args: string: Boot arguments to pass to the kernel. Possibly filtered by the boot policy.
  • boot-command: string: Example: fsboot.
  • boot-info-payload: binary: Some kind of opaque, high-entropy payload.
  • boot-note: binary: Unknown. Example: %00%00%00%00%00%00%00%bb%0ez%e5%00%00%00%00%a0q%d4%07%08%00%00%00.
  • boot-volume: volume: Default boot volume.
  • failboot-breadcrumbs: string: Space-separated codes generated by various parts of the boot progress. Example: 3000c(706d7066) 3000d 30010 f0200 f0007(706d7066) 3000c(0) 3000d 40038(958000) 40039(1530000) 4003a(0) 3000f(64747265) 3000c(64747265) 40029 3000d 30010 3000f(69626474) 3000c(69626474) 40029 3000d 30010 3000f(69737973) 3000c(69737973) 3000d 30010 3000f(63737973) 3000c(63737973) 3000d 30010 3000f(62737463) 3000c(62737463) 3000d 30010 3000f(74727374) 3000c(74727374) 3000d 30010 3000f(66756f73) 40060004 30011 30007 <COMMIT> 401d000c <COMMIT> <BOOT> 1c002b(2006300) 3000f(0) 3000c(0) 3000d 30010 3000f(69626f74) 3000c(69626f74) 40040204 40040023 4003000e 30011 30007 401d000f(ffffffff) <COMMIT> .
  • nonce-seeds: binary
  • panicmedic-timestamps: hex-int: Nanosecond-precision UNIX timestamp, presumably when the last panic occurred.
  • policy-nonce-digests: binary
  • upgrade-boot-volume: volume

Updates

  • IDInstallerDataV1: binary:lzvn:bin-plist: Compressed binary plist containing information about the most recent installer action. Seems to be absent starting somewhere between macOS 10.12 and 11.0.
  • IDInstallerDataV2: binary:lzvn:bin-plist: Compressed binary plist containing an array of information items in the same format as IDInstallerDataV1.
  • ota-updateType: string: Type of over-the-air updates to apply. Example: incremental.
  • update-volume: volume

Hardware

  • bluetoothActiveControllerInfo: binary
  • bluetoothInternalControllerInfo: binary
  • ota-controllerVersion: string: Over-the-air update controller identifier. Examples: SUMacController-1.10 (Mac Mini M1), SUS-1.0 (iPhone, iPad).
  • usbcfwflasherResult: string: Example: No errors.

Settings

  • backlight-nits: hex-int: Presumably the screen backlight strength. Mac Mini M1 example: 0x008c0000.
  • current-network: binary: Last Wi-Fi networks to have connected to.
  • fmm-computer-name: string: Computer name.
  • good-samaritan-message: string: Message to show on the boot/password screen in case the device is lost and found.
  • preferred-networks: binary: List of stored Wi-Fi networks.
  • preferred-count: int: Number of networks in preferred-networks, if not 1.
  • prev-lang:kbd: string: Keyboard layout, format: <lang>:<locale-id>, reference. Example: en-GB:26.
  • prev-lang-diags:kbd: string: Keyboard layout in diagnostics: Example: en-GB.
  • SystemAudioVolume: bin-int(8): Volume. Example: %80 (128).
  • SystemAudioVolumeExtension: bin-int(16): Example: %ff%7f (32767).

Misc

  • _kdp_ipstr: string: Currently assigned IPv4.
  • lts-persistance: binary

Examples

IDInstallerDataV2

Example with successful Big Sur 11.2 beta 1 (20D5029f) upgrade
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
	<dict>
		<key>505</key>
		<string>auth not needed</string>
		<key>6</key>
		<string>key recovery assistant</string>
	</dict>
	<dict>
		<key>505</key>
		<string>auth not needed</string>
		<key>6</key>
		<string>key recovery assistant</string>
	</dict>
	<dict>
		<key>0</key>
		<string>20D5029f</string>
		<key>100</key>
		<string>passed</string>
		<key>6</key>
		<string>upgrade</string>
	</dict>
	<dict>
		<key>505</key>
		<string>auth not needed</string>
		<key>6</key>
		<string>key recovery assistant</string>
	</dict>
	<dict>
		<key>505</key>
		<string>auth not needed</string>
		<key>6</key>
		<string>key recovery assistant</string>
	</dict>
	<dict>
		<key>505</key>
		<string>auth not needed</string>
		<key>6</key>
		<string>key recovery assistant</string>
	</dict>
	<dict>
		<key>6</key>
		<string>key recovery assistant</string>
	</dict>
	<dict>
		<key>6</key>
		<string>key recovery assistant</string>
	</dict>
</array>
</plist>
Example with crashed upgrade
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
	<dict>
		<key>100</key>
		<string>crashed</string>
		<key>102</key>
		<string>initializer</string>
		<key>103</key>
		<string>1</string>
		<key>7</key>
		<string>NO</string>
	</dict>
</array>
</plist>
Example with successful Sierra 10.12.2 (16C67) upgrade
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
	<dict>
		<key>0</key>
		<string>16C67</string>
		<key>100</key>
		<string>passed</string>
		<key>103</key>
		<string>1</string>
		<key>202</key>
		<string>832.499040</string>
		<key>203</key>
		<string>41.700535</string>
		<key>205</key>
		<string>30.318743</string>
		<key>206</key>
		<string>0.003648</string>
		<key>207</key>
		<string>0.156793</string>
		<key>208</key>
		<string>2.215885</string>
		<key>209</key>
		<string>8.130921</string>
		<key>299</key>
		<string>0.212016</string>
		<key>3</key>
		<string>solid state</string>
		<key>4</key>
		<string>unencrypted</string>
		<key>5</key>
		<string>case sensitive</string>
		<key>6</key>
		<string>clean</string>
		<key>7</key>
		<string>NO</string>
	</dict>
	<dict>
		<key>0</key>
		<string>16C67</string>
		<key>100</key>
		<string>passed</string>
		<key>103</key>
		<string>2</string>
		<key>202</key>
		<string>802.017327</string>
		<key>203</key>
		<string>29.902674</string>
		<key>205</key>
		<string>4.379149</string>
		<key>206</key>
		<string>0.003310</string>
		<key>207</key>
		<string>0.156726</string>
		<key>208</key>
		<string>2.214545</string>
		<key>209</key>
		<string>10.050913</string>
		<key>299</key>
		<string>0.184676</string>
		<key>3</key>
		<string>solid state</string>
		<key>4</key>
		<string>unencrypted</string>
		<key>5</key>
		<string>case insensitive</string>
		<key>6</key>
		<string>clean</string>
		<key>7</key>
		<string>NO</string>
	</dict>
	<dict>
		<key>0</key>
		<string>16C67</string>
		<key>100</key>
		<string>passed</string>
		<key>103</key>
		<string>3</string>
		<key>6</key>
		<string>software update</string>
	</dict>
	<dict>
		<key>0</key>
		<string>16C67</string>
		<key>100</key>
		<string>passed</string>
		<key>103</key>
		<string>4</string>
		<key>202</key>
		<string>582.532387</string>
		<key>203</key>
		<string>11.511343</string>
		<key>205</key>
		<string>1.900536</string>
		<key>206</key>
		<string>0.005585</string>
		<key>207</key>
		<string>0.101757</string>
		<key>208</key>
		<string>2.142859</string>
		<key>209</key>
		<string>3.942741</string>
		<key>299</key>
		<string>0.122528</string>
		<key>3</key>
		<string>solid state</string>
		<key>4</key>
		<string>unencrypted</string>
		<key>5</key>
		<string>case insensitive</string>
		<key>6</key>
		<string>clean</string>
		<key>7</key>
		<string>YES</string>
	</dict>
</array>
</plist>
⚠️ **GitHub.com Fallback** ⚠️