Third GM candidate OS X 10.10 Yosemite released

Apple released a third Golden Master candidate of OS X 10.10 Yosemite (Build 14A388a) today, and if you ask me… this won’t be the last one either. Why? Because Apple removed some display and power management related files some time ago, and with new hardware on the horizon it is either that or we’ll see some special builds popping up soon.

Anyway. I went looking for changes. As usual, and Ok. This is a really small, but important update. Small because the Payload file is only 8MB. A fraction of that of GM2. Which itself wasn’t that big either. And it is an important update, because most of the changes are security related. Something that Apple isn’t sharing with us, but it is clearly the whole point of this update. Perhaps something ugly was found along the way, so lets hope that they nailed it this time. Oh no. It’s nothing bash related.

I also see some refreshed (private) frameworks and like GM2 there is no new kernel. We’re still using the kernel that came with GM1. And don’t you worry boot.efi won’t be replaced. So now. Like last time, I cherry picked the most interesting files for you – with help of Pacifist. And here you have it:

Applications

– Utilities / Keychain Access.app

private

– var/db/.systemPolicy-default

Frameworks

– ApplicationServices.framework
– Carbon.framework
– CoreServices.framework
– OpenCL.framework
– Security.framework
– SecurityFoundation.framework

Private Frameworks

– DiskImages.framework
– OSInstaller.framework
– SecurityTokend.framework
– StorageKit.framework
– SystemMigration.framework

Security

– dotmac_tp.bundle
– tokend

UserEventPlugins

– com.apple.KeyStore.plugin

usr/bin

– certtool
– codesign
– crlrefresh
– csreq
– security

usr/lib

– libdns_services.dylib

usr/exec

– discoveryd
– discoveryd_helper
– efiupdater
– gkoverride
– kcproxy
– secd
– security_authrampoline
– security_service
– smcupdater
– syspolicyd
– taskgated

usr/sbin

– discoveryutil
– ocspd
– securityd
– spctl
– systemkeychain

There is also another EFI/SMC update:

EFIPayloads

– IM141_0118_B07_LOCKED.scap
– IM142_0118_B07_LOCKED.scap
– IM143_0118_B07_LOCKED.scap
– IM144_0179_B06_LOCKED.scap
– MBA61_0099_B16_LOCKED.scap
– MBP101_00EE_B05_LOCKED.scap
– MBP102_0106_B05_LOCKED.scap
– MBP111_0138_B11_LOCKED.scap
– MBP112_0138_B11_LOCKED.scap
– MP61_0116_B07_LOCKED.scap

SMCPayloads

– Mac-2BD1B31983FE1663
– Mac-3CBD00234E554E41
– Mac-7DF21CB3ED6977E5
– Mac-27ADBB7B4CEE8E61
– Mac-031B6874CF7F642A
– Mac-35C1E88140C3E6CF
– Mac-77EB7D7DAF985301
– Mac-81E3E92DD6088272
– Mac-189A3D4F975D5FFC
– Mac-F60DEB81FF30ACF6

Most likely with changes for Handoff and Continuity.

LZVN packed Apple Logo’s

I blogged about finding new EFI images in Yosemite on June 13, right after I updated Sam’s Perl script (efires-xtract) to extract the images. Thing is. I also found some other interested images in Apple binaries. Stuff that I didn’t share with you at that time, but just look at this screenshot:

AppleLogoData

Right. The problem was that back then we had no functional LZVN decompression, but now we do. And today I used it for an update of my fork of macosxbootloader.

Now all I have to do is wait for folks over at macrumors.com to confirm that the latest experimental built works. Or not of course, but then it should be a simply matter of fixing the broken bits.

Nevertheless. The old MacPro’s are now by far the oldest Mac hardware to “officially” support iCloud, iMessage, Handoff and Continuity. That is pretty amazing for such an old piece of Apple machinery. Anyway. Have fun now guys and don’t forget the feedback!

Update

Great. The new shiny white Apple logo on the black background is working, but there are still a couple of kinks to iron out. For example. The first thing that I noticed was that the background colour is changed pretty late in the game. Let me try to explain how it works:

1.) AppleLogoBlackPacked (912 bytes) is LZVN decompressed.
2.) The resulting 8652 bytes are Clut converted.
3.) CsClearScreen() is called (changed background colour).

That was the old situation, but this is how it should work now:

1.) First we call CsClearScreen().
2.) Then we decompress AppleLogoBlackPacked.
3.) After this the data is Clut converted.

In other words. The time that it takes to decompress the LZVN packed Apple logo, plus the time it takes to convert the Apple logo data, will now be done after the background colour is changed! Let me know if you notice the difference. TIA !

Apple released OS X 10.10 Yosemite GM2

Apple released OS X 10.10 Yosemite GM2 candidate earlier today, and as usual, I went looking for changes. Wow. I must admit that I didn’t expected to see such a long list with changed files. Let’s see what Apple did. Ok. So the Mail, Messages and Notes apps have changed. All bug fixes so don’t expect new feature this late in the game. Next to that. A ton of the changed files are Bluetooth related. That certainly has been a large focus area for this update. I also see some refreshed (private) frameworks and note the security related files that got changed. Apple won’t tell us what the changes involve, but looking at the certificate related stuff, I’d say that’s probably a part of it.

The Xcode/Command Line Tools (6.1) for OS X 10.10 Yosemite also got an update.

I cherry picked the most interesting files out of a much longer list – with help of Pacifist. And here you have it:

Applications

– Mail
– Messages
– Notes

Applications/Utilities

– Bluetooth File Exchange.app
– Keychain Access.app

Extensions

– AppleBluetoothMultitouch.kext
– AppleHIDKeyboard.kext
– AppleHIDMouse.kext
– IOBluetoothFamily.kext
– IOBluetoothHIDDriver.kext

Frameworks

– AppKit.framework
– ApplicationServices.framework
– CFNetwork.framework
– Carbon.framework
– CoreGraphics.framework
– CoreServices.framework
– CoreVideo.framework
– IOBluetooth.framework
– IOBluetoothUI.framework
– Security.framework
– SecurityFoundation.framework

InternetAccounts

– Mail.iaplugin
– Notes.iaplugin
– SetupPlugins

Preference Panes

– AppStore.prefPane
– Bluetooth.prefPane

PrivateFrameworks

– BrowserKit.framework
– DeviceToDeviceManager.framework
– DiskImages.framework
– EmailAddressing.framework
– FTServices.framework
– IDS.framework
– IDSFoundation.framework
– IDSSystemPreferencesSignIn.framework
– IMAP.framework
– Install.framework
– Mail.framework
– MailCore.framework
– MailService.framework
– MailUI.framework
– Notes.framework
– OSInstaller.framework
– SecurityTokend.framework
– SystemMigration.framework

QuickLook

– Mail.qlgenerator
– Notes.qlgenerator

Security

– dotmac_tp.bundle
– tokend

Spotlight

– Mail.mdimporter
– Notes.mdimporter

SystemProfiler

– SPBluetoothReporter.spreporter

UserEventPlugins

– BluetoothUserAgent-Plugin.plugin
– com.apple.KeyStore.plugin
– com.apple.nsurlsessiond.plugin

In short. Don’t let anyone fool you. This update, despite its smaller size, is a serious update. Especially for people like me with Bluetooth issues.

XNU source code of OS X 10.9.5 released

The XNU source code of OS X 10.9.5 has been released by Apple. You can find it here. I looked for interesting changes… but found none so…

This has got to be the most boring update ever!

Sorry, but with Yosemite around the corner… I’m not really interested anymore. You may still need it, but I don’t.

Yosemite support for old MacPro’s (part III)

Please compile the latest files from my Github repository and let me know if the new 64-bit values are working (random-seed) so that I can complete another item on the TODO list.

Edit

The random-seed will eventually really be random, but the Intel Secure Key Technology is not supported on the processors that are used in the MacPro[1/2]. You can verify this for me by running the commands below:

sysctl -n machdep.cpu.features
sysctl -n machdep.cpu.extfeatures

Edit: This has been confirmed by Dan M. and blacksheep. Thanks guys!

When will it work? The usual answer to this kind of questions is; When I am done. But seriously. It will just take a little bit longer because now I had to disassemble Apple’s boot.efi and convert their assembler code into compatible C code.

Debug Messages

The debug messages are now switched off, by default, but you can enable them by changing a the DEBUG_LDRP_CALL_CSPRINTF compiler directive from 0 (zero) to 1 when you need them.

Old MacPro’s and Yosemite

My first blog post about Yosemite support for old MacPro’s was of course just that. A first step in the right direction, and mikeboss shoot a youtube video to show you how his good old MacPro is booting up OS X 10.10 Yosemite.

Black Mode

Note that it boots up in verbose mode, and without kernel cache, so it is still a bit slow. After the verbose data scrolls over his screen, the screen turns black and the new white Apple logo appears. Just like on the iPhone, iPad, MacBook Air and MacBook Pro. Beautiful isn’t it.

Cast Errors

Mikeboss did use a couple of un-patched files, due to cast errors in my files, but the 6:50 commit should have taken care of the errors. The problem is that the remote machine I use to compile the code is switched off, and thus I cannot compile it myself. Not right now, but I’ll do that the minute the box shows up again.

The changed LZVN code is working fine, with a test program that I use to unpack kernel cache files. I used the kernel cache of DP8, which is 16.4 MB in compressed LZVN format and 42.2 MB in uncompressed format. It took only 168 ms to convert it. From start to finish.

iMessage

I had a quick look at BlpSetupRomVariable() in Main.cpp and that makes me think that iMessage isn’t working. The stuff I see in there isn’t right. I wonder if it works with Mavericks. Please confirm this before I waste any time on it. Thanks

Update

MS dev box is back on-line. New source code compiles fine. Win-32 bit target should be fine now. Please verify the LZVN changes. Thanks!

Yikes! A find & replace went wrong somehow so let me fix that right now! Done.

Update 2

The fact that I don’t have an old MacPro myself makes things more difficult for me. That is painfully clear by now, but my determination to finish things, I mean the stuff that I start to work on, and your patience (thanks) and feedback (thanks again) will eventually pay off. Big time. Yosemite here we come. Hang in there guys and gals. We will make it work! Hmm. Food now.

Update 3

I added some call to CsPrintf(“TIANO: “) in the hope that they output information about where and when it fails, during the discovery of and load of the kernel cache file.

Yosemite support for old MacPro’s

If you happen to own one of these ‘good old’ (solid) MacPro’s then you most definitely know the macosxbootloader project, developed by Tiano in 2013. Unfortunately, it lacks support for Yosemite, and with the first GM candidate now being tested by (registered) Mac developers… its boot.efi replacement is starting to annoy people, who are eagerly awaiting for someone to fix this. And because nobody else stepped in before me, Peter Holbrook asked for a little help. Sure. No problem!

The first problem was to find someone that could compile the source code, since I don’t use Microsoft Windows, and that hurdle is already taken. I now have remote access to a MS box with all dev tools installed on it, and it appears to work. Pretty cool.

Now the big question is; Can you deliver Pike? Sure we can. And note that I used “we” here, because I need your help just as much as (some of) you need my help because I do not have an old MacPro to play with. So please, let us try to solve this as friends, sharing the same passion for old stuff. Lol.

Anyway. The first couple of changes went in already, and all that is missing to actually boot Yosemite on your good old MacPro is the missing “random-seed” property (see TODO file). So how do we attack this?

Simple. Open BootArgs.cpp and look for BlInitializeBootArgs. Add the seedBuffer declaration and call to DevTreeAddProperty () above the line with:

*bootArgsP = bootArgs;

You may need to change it a little, but I am past my bed time already so this exercise is yours my friends 😉

After this you compile and replace boot.efi with the new file. Then try to boot with -f because that will skip kernel cache. You need this due to the lacking LZVN decompression, but that can be added later on. This step is to see if the reboot is gone. That and finding the kernel are key tests now.

If it can’t find the kernel, then I made a mistake somewhere. In that case be smart and use the kernel boot argument, to load the kernel of your choice.

Gaap. I really, really need to get some sleep now. Our son will wake up for food in the middle of the night so.. have fun guys and gals. See you on the other side of the moon!

Update

Someone e-mailed me about setting up a 90-day trial version of Visual Studio and NASM on his 2006 MacPro, because he ran into this error after trying to build the source code:

Error 1 error MSB6006: "cmd.exe" exited with code 9009.

Right. We got the same error when we forgot to add the path to the NASM executable. We fixed it and after that everything was fine.

Update-2

New experimental patches have been committed, a few minutes ago, but I don’t know if they will work (compiles fine) because I don’t have an old MacPro.