New HandyScript called installSeed.py

You may have used one of my HandyScripts to install High Sierra. The problem with these scripts was that I had to update them for every new Developer Preview. And that was a burden. Taking too much time, and that is why I converted the bash scripts to a much smarter python variant. I started to work on it back in July, but it is still ugly, and I had never used it. Not until today.

Update: installSeed.py v1.7 includes bug fixes so you better use the latest version!

Updates: installSeed.py v1.8 is now available. This update downloads the correct i18n dictionary.
installSeed.py v1.9 is now available. This update includes minor cleanups and a version number error fix.
installSeed.py v2.0 is now available. This update exits gracefully, with instructions to install pip/request module.

Anyway. We first have to make some preparations. Open a terminal window and enter:

sudo easy_install pip
sudo pip install requests

That should get you ready for installSeed.py. The output of installSeed.py is pretty much similar to that of the previous bash scripts:

Available target volumes:

[ 0 ] MackintoshHD
[ 1 ] High Sierra

Select a target volume for the boot file: 1
Seed Program Enrollment: DeveloperSeed
File: BaseSystem.chunklist already there, skipping this download.
File: InstallESDDmg.pkg already there, skipping this download.
File: InstallAssistantAuto.pkg already there, skipping this download.
File: AppleDiagnostics.chunklist already there, skipping this download.
File: InstallESDDmg.chunklist already there, skipping this download.
File: OSInstall.mpkg already there, skipping this download.
File: InstallInfo.plist already there, skipping this download.
File: RecoveryHDMetaDmg.pkg already there, skipping this download.
File: BaseSystem.dmg already there, skipping this download.
File: AppleDiagnostics.dmg already there, skipping this download.
Creating installer.pkg ...
productbuild: Wrote product to /Volumes/High Sierra/tmp/091-30125/installer.pkg
Running installer ...
Password:
installer: Package name is Install macOS High Sierra Beta
installer: Installing at base path /Volumes/High Sierra
installer: The install 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 ..

The good thing (for me) is that with the introduction of installSeed.py I no longer need to update the file for every new Developer Preview.

Oh. One last note. The file /Users/Shared/.SeedEnrollment.plist should be this:

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
	<dict>
		<key>SeedProgram</key>
		<string>DeveloperSeed</string>
	</dict>
</plist>

If you have a backslash in the first line, then please remove it before running installSeed.py

Have fun!

Advertisement

15 thoughts on “New HandyScript called installSeed.py

  1. Hi piker,
    Looks like it’s not working with non English setups :

    Available target volumes:

    [ 0 ] Archive
    [ 1 ] BOOTCAMP
    [ 2 ] EFI
    [ 3 ] Install
    [ 4 ] OSX
    [ 5 ] Time Machine

    Select a target volume for the boot file: 3
    Seed Program Enrollment: DeveloperSeed
    Downloading: RecoveryHDMetaDmg.pkg …
    Downloading: BaseSystem.dmg …
    Downloading: InstallESDDmg.pkg …
    Downloading: InstallAssistantAuto.pkg …
    Downloading: OSInstall.mpkg …
    Downloading: InstallInfo.plist …
    Downloading: AppleDiagnostics.dmg …
    Downloading: AppleDiagnostics.chunklist …
    Downloading: InstallESDDmg.chunklist …
    Downloading: BaseSystem.chunklist …
    Traceback (most recent call last):
    File “/Users/krazubu/Downloads/HandyScripts-master/installSeed.py”, line 189, in
    os.remove(distributionFile)
    OSError: [Errno 2] No such file or directory: ‘/Volumes/Install/tmp/091-30125/091-30125.English.dist’

  2. Hi, it’s me again, I talked too quickly. This time the script reaches the end, however, when I launch the install app, it tells me it’s damaged and cannot be used.

    • Thanks. Can you please try something. The problem is most likely that the created installer.pkg is copied to SharedResources as installESD.dmg (5.15GB) instead of installESDDmg.pkg I fixed this but I cannot commit anything right now.

      1.) remove SharedResources/installESD.dmg
      2.) rename SharedResources/installESDDmg.pkg to installESD.dmg
      3.) Try again.

      Edit: This errors should now be fixed (again) in v1.6

      • I had already tried that, though there was indeed a problem there, that’s not enough, the installer still doesn’t start. What I find weird is that if I launch OSInstall.mpkg in the raw download folder, it complains about signature being invalid. Is this normal ? I tried to remove it and let it redownload.

      • No! What is the md5 of that file?

        Edit: Yes it is. No problem here!

        Note: Relaunch the script and let it check the file sizes, so that it can replace broken files!

  3. MD5 (OSInstall.mpkg) = 7ed673fa49ab9ab70a9666e24611b207
    I redownloaded it several times already, the script doesn’t complain if I let it there.

  4. Thank You Pike!! for your effort providing the script. Just for the record I report back that script v1.6 is working OK on this side. As result a folder is created at indicated destination, included therein ‘Install macOS High Sierra Beta.app’ (checksum passes at startup).
    MD5 OSInstall.mpkg = 7ed673fa49ab9ab70a9666e24611b207

    • The previous version lacked support for later macOS versions, but that should be fixed in v3.4 so please give it a try.

      Edit: There are three calls to urllib2.urlopen() and none of them checks for errors, so it is really hard to tell where it fails. I’ll put that on my TODO list.

      Thank you for reporting this here!

      Update: Checks added to urllib2.urlopen() in version 3.5

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 )

Facebook photo

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

Connecting to %s