installSeed.py v3.2 released…

Yesterday I blogged about installSeed.py v3.0 and today I want to discuss the new options of installSeed.py v3.2 (after a silent update to v3.1).

Let’s start with the output when argument -h is used:

./installSeed.py -h

installSeed.py v3.2 Copyright (c) 2017 by Pike R. Alpha

Supported arguments:

installSeed.py -a update
installSeed.py -a update -f <packagename>
installSeed.py -a update -f <packagename> -t <volumename>
installSeed.py -a update -f <packagename> -t <volumename> -c [0/1] (0 skips confirmation)

installSeed.py -a install
installSeed.py -a install -f <packagename>
installSeed.py -a install -f <packagename> -t <volumename>
installSeed.py -a install -f <packagename> -t <volumename> -c [0/1] (0 skips confirmation)

Let’s select a target volume from the command line:

./installSeed.py -t /

installSeed.py v3.2 Copyright (c) 2017 by Pike R. Alpha

Currently running on macOS High Sierra 10.13 Build (17A360a) 
Seed Program Enrollment: DeveloperSeed

Downloading: 091-32527.English.dist [9851 bytes] ...
Found Install Package with BuildID (17A362a) and Key (091-32527)
Seed BuildID is newer than macOS on this Mac (Ok)

Do you want to continue [y/n] ? n
Aborting ...

Note that “Seed BuildID is newer than macOS on this Mac (Ok)” is new, and that the text of the confirmation changes along with it. Let’s check for an update:

./installSeed.py -a update -t /

installSeed.py v3.2 Copyright (c) 2017 by Pike R. Alpha

Currently running on macOS High Sierra 10.13 Build (17A360a) 
Seed Program Enrollment: DeveloperSeed

Downloading: 091-31306.English.dist [13680 bytes] ...
Found Install Package with BuildID (17A360a) and Key (091-31306)

Warning: Seed BuildID is the same as macOS on this Mac!

Are you sure that you want to continue [y/n] ? n
Aborting ...

Note the warning, and that fact that the text of the confirmation changed. No problem. You might need a reinstallation of the current version of macOS. Anyway. Let’s do that again, but this time on a Mac with the latest GM candidate installed on it:

./installSeed.py -a update -t /

installSeed.py v3.2 Copyright (c) 2017 by Pike R. Alpha

Currently running on macOS High Sierra 10.13 Build (17A362a) 
Seed Program Enrollment: DeveloperSeed

Downloading: 091-31306.English.dist [13680 bytes] ...
Found Install Package with BuildID (17A360a) and Key (091-31306)

Warning: Seed BuildID is older than macOS on this Mac!

Are you absolutely sure that you want to continue [y/n] ? n
Aborting ...

New warning text, and this time the text for the confirmation also includes the word: “absolutely”. That should help prevent errors. So I hope.

Let’s now use the -f argument to download a single package. Here we download the FirmwareUpdate.pkg from the latest update:

./installSeed.py -a update -f FirmwareUpdate.pkg -t /

installSeed.py v3.2 Copyright (c) 2017 by Pike R. Alpha

Currently running on macOS High Sierra 10.13 Build (17A360a) 
Seed Program Enrollment: DeveloperSeed

Downloading: 091-31306.English.dist [13680 bytes] ...
Found Install Package with BuildID (17A360a) and Key (091-31306)

Warning: Seed BuildID is the same as macOS on this Mac!

Are you sure that you want to continue [y/n] ? y

Queued Downloads:
FirmwareUpdate.pkg [200477927 bytes]

Download of FirmwareUpdate.pkg finished

Want the latest version of RecoveryHDMetaDmg.pkg? No problem. You can do that like so:

./installSeed.py -a install -f RecoveryHDMetaDmg.pkg -t /

installSeed.py v3.2 Copyright (c) 2017 by Pike R. Alpha

Currently running on macOS High Sierra 10.13 Build (17A360a) 
Seed Program Enrollment: DeveloperSeed

Downloading: 091-32527.English.dist [9851 bytes] ...
Found Install Package with BuildID (17A362a) and Key (091-32527)
Seed BuildID is newer than macOS on this Mac (Ok)

Queued Downloads:
RecoveryHDMetaDmg.pkg [492072796 bytes]

Download of RecoveryHDMetaDmg.pkg finished

You’ll find the downloaded file in: /tmp/[key] In this case: /tmp/091-32527

Don’t want a confirmation? Ok. Add the -c 0 arguments. Oh and there is one last thing. This:

./installSeed.py -a update -t /

installSeed.py v3.2 Copyright (c) 2017 by Pike R. Alpha

Currently running on macOS High Sierra 10.13 Build (17A360a) 
Seed Program Enrollment: DeveloperSeed

Downloading: 091-31306.English.dist [13680 bytes] ...
Found Install Package with BuildID (17A360a) and Key (091-31306)

Warning: Seed BuildID is the same as macOS on this Mac!

Queued Downloads:
macOSUpd10.13.pkg [2143075990 bytes]
FullBundleUpdate.pkg [110316889 bytes]
EmbeddedOSFirmware.pkg [59301204 bytes]
macOSUpd10.13.RecoveryHDUpdate.pkg [492064611 bytes]
macOSUpd10.13Patch.pkg [1307745946 bytes]
FirmwareUpdate.pkg [200477927 bytes]

Download of EmbeddedOSFirmware.pkg finished
Download of FullBundleUpdate.pkg finished
Download of FirmwareUpdate.pkg finished
Download of macOSUpd10.13.RecoveryHDUpdate.pkg finished
Download of macOSUpd10.13Patch.pkg finished
Download of macOSUpd10.13.pkg finished
Support for -a update is not implemented in v3.2

Note the: “Support for -a update is not implemented in v3.2” there. As in. This version currently only downloads the files. It won’t install anything. This is something that I like to work on for a next update.

Advertisements

installSeed.py v3.0 released…

You may still be using an old version of installSeed.py but a new version is now available from my Github Repository. I don’t have a lot of time right now, so let’s start with the output of the script:

installSeed.py v3.0 Copyright (c) 2017 by Pike R. Alpha

Currently running on macOS High Sierra 10.13 Build (17A360a) 
Seed Program Enrollment: DeveloperSeed

Available target volumes:

[ 0 ] Mountain Lion
[ 1 ] Mavericks
[ 2 ] Yosemite
[ 3 ] El Capitan
[ 4 ] Sierra
[ 5 ] High Sierra

Select a target volume for the boot file: 5

Downloading: 091-32527.English.dist [9851 bytes] ...
Found Install Package with BuildID (17A362a) and Key (091-32527)

Do you want to continue [y/n] ? y

Queued Downloads:
InstallAssistantAuto.pkg [10808727 bytes]
InstallInfo.plist [1584 bytes]
RecoveryHDMetaDmg.pkg [492072796 bytes]
AppleDiagnostics.dmg [2613304 bytes]
BaseSystem.dmg [490624505 bytes]
AppleDiagnostics.chunklist [328 bytes]
BaseSystem.chunklist [1984 bytes]
InstallESDDmg.chunklist [16312 bytes]
OSInstall.mpkg [540619 bytes]
InstallESDDmg.pkg [4660293474 bytes]

Download of InstallInfo.plist finished
Download of BaseSystem.chunklist finished
Download of AppleDiagnostics.chunklist finished
Download of InstallESDDmg.chunklist finished
Download of OSInstall.mpkg finished
Download of AppleDiagnostics.dmg finished
Download of InstallAssistantAuto.pkg finished
Download of BaseSystem.dmg finished
Download of RecoveryHDMetaDmg.pkg finished
Download of InstallESDDmg.pkg finished

Creating installer.pkg ...
Password: ********
productbuild: Wrote product to /Volumes/High Sierra/tmp/091-32527/installer.pkg

Running installer ...
installer: Package name is Install macOS High Sierra Beta
installer: Upgrading at base path /
installer: The upgrade was successful.

Copying: InstallESDDmg.pkg to the target location ...
Copying: AppleDiagnostics.dmg to the target location ...
Copying: AppleDiagnostics.chunklist to the target location ...
Copying: BaseSystem.dmg to the target location ...
Copying: BaseSystem.chunklist to the target location ...

Note the much improved output. Which is way more informative. Now you know what you’re about to download.

It now also asks you if you want to continue. Before it adds the URLs to the download queue. As in multithreaded downloads. To speeds things up.

I also added (the initial) support for seed updates and single package downloads. Like for example FirmwareUpdate.pkg – though this feature will only be available in a next update!

Edit: The text: “Select a target volume for the boot file” should have been: “Select a target volume” and will be corrected in a next update!

XNU source code for Sierra 10.12.6 is incomplete…

The XNU source code for Sierra 10.12.6, the source code that Apple is sharing with us, is missing some vital definitions. This makes it even more incomplete than it already was. I mean just look at this (cpuid.h):

#define CPU_MODEL_SKYLAKE		0x4E
#define CPU_MODEL_SKYLAKE_ULT		0x4E
#define CPU_MODEL_SKYLAKE_ULX		0x4E
#define CPU_MODEL_SKYLAKE_DT		0x5E

That should really be this:

#define CPU_MODEL_SKYLAKE		0x4E
#define CPU_MODEL_SKYLAKE_ULT		0x4E
#define CPU_MODEL_SKYLAKE_ULX		0x4E
#define CPU_MODEL_SKYLAKE_DT		0x5E
#define CPU_MODEL_SKYLAKE_W		0x55

#define CPU_MODEL_KABYLAKE		0x8E
#define CPU_MODEL_KABYLAKE_ULT		0x8E
#define CPU_MODEL_KABYLAKE_ULX		0x8E
#define CPU_MODEL_KABYLAKE_DT		0x9E

And this line is also missing in machine.h:

#define CPUFAMILY_INTEL_KABYLAKE	0x0f817246

Why? Because Kaby Lake processors where introduced in Mac’s long before the High Sierra GM. Without these even Apple cannot compile the source code. But hey. I guess that Apple isn’t expecting us to pay attention to detail.

Note: The source code for High Sierra 10.13 is correct. As in the lines are there in the SDK already.

Craig’s Face ID failure on the iPhone X

Sorry to spoil it for you, but…

It seems that some people think that Face ID failed during the keynote, but what actually happened there – I think – was that Craig picked up the wrong iPhone. One without Face ID setup for him. This is why it showed this: “Swipe up to unlock” and “Your passcode is required to enable Face ID” after two five attempts. Note the “to enable Face ID“. As in. It was not setup for him.

Well. So far for the failure during the keynote.

Edit: Actually. Looking at the facts. This doesn’t look good for Apple. Certainly not for a GM.

Edit-2: Well. maybe not. I checked the keynote once more and it seems that Craig looked at the iPhone X twice before Face ID got disabled. He didn’t even notice it.

The first time Craig didn’t pick up the iPhone, but he looked at it on the table. This was attempt number one. And it failed to recognise him.

The second time Craig did pick up the iPhone, and he looked at the iPhone, but only briefly. This was attempt number two. Which also fail to recognise him.

After this, Face ID was disabled, because that is what it should do. Disable Face ID after two five unsuccessful attempts.

Ergo. The problem was that he looked at the iPhone X, but not long enough.

Edit-3: The problem appears to be even simpler. Well. According to Apple that is, because their explanation to David Pogue was this:

People were handling the device for stage demo ahead of time,” says a rep, “and didn’t realize Face ID was trying to authenticate their face. After failing a number of times, because they weren’t Craig, the iPhone did what it was designed to do, which was to require his passcode.” In other words, “Face ID worked as it was designed to.

Ok then please, please explain to me why Face ID on the backup iPhone X worked. Let me guess. That iPhone X wasn’t handled by the same person, but Craig himself?

Initial iPhone 8 (Plus) and iPhone X serial data

Apple added the (initial) data for the new iPhone 8 (Plus) and iPhone X. This information is used to link you to a page with Technical Specifications for the device, based on the last four characters of the serial number:

JC67 – iPhone 8
JC68 – iPhone 8
JC69 – iPhone 8
JC6C – iPhone 8
JC6D – iPhone 8
JC6F – iPhone 8
JC6G – iPhone 8
JC6H – iPhone 8
JC6J – iPhone 8
JC6K – iPhone 8
JC6L – iPhone 8
JC6M – iPhone 8
JC6N – iPhone 8
JC6P – iPhone 8
JC6Q – iPhone 8
JC6R – iPhone 8
JC6T – iPhone 8
JC6V – iPhone 8

JCL6 – iPhone X
JCL7 – iPhone X
JCL8 – iPhone X
JCL9 – iPhone X
JCLC – iPhone X
JCLD – iPhone X
JCLF – iPhone X
JCLG – iPhone X
JCLH – iPhone X
JCLJ – iPhone X
JCLK – iPhone X
JCLL – iPhone X

JCLM – iPhone 8 Plus
JCLN – iPhone 8 Plus
JCLP – iPhone 8 Plus
JCLQ – iPhone 8 Plus
JCLR – iPhone 8 Plus
JCLT – iPhone 8 Plus
JCLV – iPhone 8 Plus
JCLW – iPhone 8 Plus
JCLX – iPhone 8 Plus
JCLY – iPhone 8 Plus
JCM0 – iPhone 8 Plus
JCM1 – iPhone 8 Plus
JCM2 – iPhone 8 Plus
JCM3 – iPhone 8 Plus
JCM4 – iPhone 8 Plus
JCM5 – iPhone 8 Plus
JCM6 – iPhone 8 Plus
JCM7 – iPhone 8 Plus

When Not To Share Something…

Last Friday – 8 September 2017 – I got tipped about an upcoming GM. This was many hours before the links to the GM seeds of iOS 11 were leaked, elsewhere. I even started to work on a blog article, which I shared shortly, by accidentally, but it was quickly removed after someone (Tony Arnold) commented on it; I seem to have clicked on the ‘Publish‘ button when I wanted to ‘Preview‘ my work.

Then. A few minutes later. I got word about the details and magnitude of the leak – the kind of information that people may find in the iOS GM – and as a result, what it would mean to the Apple September 12 event – in my view it spoils all the fun of watching the keynote. And you know what. My gut feeling told me not to share this, and that was why I kindly declined the offer.

Please note that the initial blog article was written, mainly, for the High Sierra GM and we all have to wait until Apple gives it the green light. Officially.

I strongly believe that registered developers, people who signed the Apple None Disclosure Agreement, which I did not mind you, should not share details from Beta software. Not even from so called ‘public’ servers, because what counts here, is your NDA agreement!

p.s. I didn’t even download any of the files!