OS X Mavericks 10.9.4 (Build 13E16) Seeded

Apple seeded Build 13E16 of OS X 10.9.4 to developers. Made available through their Software Update mechanism in the Mac App Store, as well as through the Mac Dev Center. An almost forgotten update due to our focus on the first developer preview of OS X 10.10 (Yosemite). Sorry about that.

Anyway. I blogged about newly discovered power management resource files in the first developer preview of 10.9.4 like two weeks ago but things have changed a little since then.

Changes

Apple removed these two files:

Mac-42FD25EABCABB274.plist / iMac15,n (IGPU/GFX0/Apple display with id 0xAE03)
Mac-FA842E06C61E91C5.plist / iMac15,n (IGPU/GFX0/Apple Retina display with id 0xAE03)

But this one is still there.

Mac-81E3E92DD6088272.plist / iMac14,4 (IGPU only)

We’ve learned that the latest MacBook Air is using the same board-id as the previous model, it was after all only a minor spec-bumb, so guess what. The new iMacs may also be using the same board-id, because only a minor spec-bumb is to be expected. That is if the rumours are true. Which unfortunately also means that the new Retina iMac won’t make it before Q4. Sounds plausible to me.

The IGPU only power management resource file could either be used for a new iMac, or for a new Mac mini. Whatever happens, happens, but my guess is that Apple will drop the price for non-retina iMacs and add a new Retina iMac for few hundred dollar more. Add a new Mac mini and a lot of people will be happy. Very happy indeed.

Changes

Config2 with the EDID data has also been removed from:
AppleGraphicsControl.kext/C*/P*/AppleGraphicsDevicePolicy.kext/C*/

New

/usr/libexec/gkbisd
/System/Library/LaunchDaemons/com.apple.gkbisd.plist

<?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">
<dict>
	<key>Label</key>
	<string>com.apple.gkbisd</string>
	<key>ProgramArguments</key>
	<array>
		<string>/usr/libexec/gkbisd</string>
	</array>
	<key>Umask</key>
	<integer>54</integer>
	<key>ProcessType</key>
	<string>Background</string>
	<key>LowPriorityIO</key>
	<true/>
	<key>MachServices</key>
	<dict>
		<key>com.apple.gkbisd</key>
		<true/>
	</dict>
	<key>LaunchEvents</key>
	<dict>
		<key>com.apple.xpc.activity</key>
		<dict>
			<key>com.apple.gkbisd.worker</key>
			<dict>
				<key>Delay</key>
				<integer>86400</integer>
				<key>GracePeriod</key>
				<integer>3600</integer>
				<key>Priority</key>
				<string>Maintenance</string>
				<key>Repeating</key>
				<true/>
			</dict>
		</dict>
	</dict>
</dict>
</plist>

Ok. These are the SQlite3 statements I found in this daemon:

BEGIN EXCLUSIVE
SELECT id, path FROM object WHERE collected = 0 ORDER BY id ASC LIMIT 1
DELETE FROM object WHERE id = ?
COMMIT
ROLLBACK
SELECT 1 FROM object WHERE path = ? AND collected = 0
SELECT 1 FROM object WHERE current_cdhash = ?
INSERT INTO object (path, collected, identifier, signature_version, current_cdhash, opaque_cdhash) VALUES (?, ?, ?, ?, ?, ?)
CREATE TABLE IF NOT EXISTS object (id INTEGER PRIMARY KEY AUTOINCREMENT, path TEXT NOT NULL, collected INTEGER, identifier TEXT, signature_version INTEGER, current_cdhash TEXT UNIQUE ON CONFLICT REPLACE, opaque_cdhash TEXT)

Data stored in: /private/var/db/gkbis.db

2 thoughts on “OS X Mavericks 10.9.4 (Build 13E16) Seeded

  1. Have you looked into gkbisd much more? I took a few minutes to look at it by dumping the database and shared libs. The “quarantine bit” column and the “gk” filename prefix indicate that it is related to the verification of code signatures on behalf of Apple’s Gatekeeper.

    The cdhash values are SHA-1 hashes of the CodeDirectory resource and are documented here: https://developer.apple.com/library/mac/documentation/security/conceptual/CodeSigningGuide/RequirementLang/RequirementLang.html
    “Because the code directory changes whenever the program changes in a nontrivial way, this test can be used to unambiguously identify one specific version of a program. When the operating system signs an otherwise unsigned program (so that the keychain or Parental Controls can recognize the program, for example), it uses this requirement.”

    otool -L /usr/libexec/gkbisd
    /usr/libexec/gkbisd:
    /usr/lib/libsqlite3.dylib (compatibility version 9.0.0, current version 158.0.0)
    /System/Library/PrivateFrameworks/CrashReporterSupport.framework/Versions/A/CrashReporterSupport (compatibility version 1.0.0, current version 539.0.0)
    /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 855.17.0)
    /System/Library/Frameworks/Security.framework/Versions/A/Security (compatibility version 1.0.0, current version 55471.14.8)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)

    The opaque CodeDirectory hashes are related to manifest files in code signing: http://pubs.opengroup.org/onlinepubs/9629299/5_chap07.htm. I’m sure someone that developed for the App Store can add some context around the values.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s