EFIver.py v2.2 released

The last time that I blogged about EFIver.py was a week ago, for version 1.5, and today I like to share EFIver.py v2.2 with you. Let’s start with the output. As usual.

---------------------------------------------------------------------------
         EFIver.py v2.2 Copyright (c) 2017 by Dr. Pike R. Alpha
---------------------------------------------------------------------------
          Mac-F2268CC8 |       iMac10,1 |   IM101.88Z.00CF.B00.1708080133
          Mac-F2268DAE |       iMac11,1 |   IM111.88Z.0037.B00.1708080241
          Mac-F2238AC8 |       iMac11,2 |   IM112.88Z.005B.B00.1708080439
  Mac-942B5BF58194151B |       iMac12,1 |   IM121.88Z.004D.B00.1708080012
  Mac-00BE6ED71E35EB86 |       iMac13,1 |   IM131.88Z.010F.B00.1708080805
  Mac-031B6874CF7F642A |       iMac14,1 |   IM141.88Z.0123.B00.1708211404
  Mac-27ADBB7B4CEE8E61 |       iMac14,2 |   IM142.88Z.0123.B00.1708211454
  Mac-77EB7D7DAF985301 |       iMac14,3 |   IM143.88Z.0123.B00.1708211454
  Mac-81E3E92DD6088272 |       iMac14,4 |   IM144.88Z.0183.B00.1708080656
  Mac-42FD25EABCABB274 |       iMac15,1 |   IM151.88Z.0211.B00.1708080656
  Mac-FA842E06C61E91C5 |       iMac15,1 |   IM151.88Z.0211.B00.1708080656
          Mac-F22C8AC8 |     MacBook6,1 |    MB61.88Z.00CB.B00.1708080203
          Mac-F22C89C8 |     MacBook7,1 |    MB71.88Z.003D.B00.1708080317
  Mac-942452F5819B1C1B |  MacBookAir3,1 |   MBA31.88Z.0067.B00.1708080355
  Mac-C08A6BB70A942AC2 |  MacBookAir4,1 |   MBA41.88Z.007B.B00.1708072159
  Mac-66F35F19FE2A0D05 |  MacBookAir5,1 |   MBA51.88Z.00F4.B00.1708080803
  Mac-35C1E88140C3E6CF |  MacBookAir6,1 |   MBA61.88Z.0103.B00.1708080653
  Mac-7DF21CB3ED6977E5 |  MacBookAir6,2 |   MBA61.88Z.0103.B00.1708080653
  Mac-C3EC7CD22292981F | MacBookPro10,1 |  MBP101.88Z.00F2.B00.1708080809
  Mac-AFD8A9D944EA4843 | MacBookPro10,2 |  MBP102.88Z.010B.B00.1708080805
  Mac-189A3D4F975D5FFC | MacBookPro11,1 |  MBP111.88Z.0142.B00.1708080655
  Mac-D1FF70AF6D8C849A |        Unknown |  MBP111.88Z.0142.B00.1708080655
  Mac-3CBD00234E554E41 | MacBookPro11,2 |  MBP112.88Z.0142.B00.1708080655
  Mac-2BD1B31983FE1663 | MacBookPro11,3 |  MBP112.88Z.0142.B00.1708080655
          Mac-F22589C8 |  MacBookPro6,1 |   MBP61.88Z.005A.B00.1708072217
          Mac-F222BEC8 |  MacBookPro7,1 |   MBP71.88Z.003D.B00.1708080058
  Mac-94245B3640C91C81 |  MacBookPro8,1 |   MBP81.88Z.004D.B00.1708080655
  Mac-4B7AC7E43945597E |  MacBookPro9,1 |   MBP91.88Z.00D7.B00.1708080744
          Mac-F2208EC8 |     Macmini4,1 |    MM41.88Z.0045.B00.1708072325
  Mac-8ED6AF5B48C039E1 |     Macmini5,1 |    MM51.88Z.007B.B00.1708080744
  Mac-031AEE4D24BFF0B1 |     Macmini6,1 |    MM61.88Z.010B.B00.1708080649
  Mac-35C5E08120C7EEAF |     Macmini7,1 |    MM71.88Z.0224.B00.1708080033
  Mac-F60DEB81FF30ACF6 |      MacPro6,1 |    MP61.88Z.0120.B00.1708080652
---------------------------------------------------------------------------
> Mac-7BA5B2D9E42DDD94 |        Unknown |AAPJ1371.88Z.E064.D20.1709290920 <
---------------------------------------------------------------------------
  Mac-A369DDC4E67F1C45 |       iMac16,1 |   IM161.88Z.0212.B00.1708080033
  Mac-FFE5EF870D7BA81A |       iMac16,2 |   IM162.88Z.0212.B00.1708080033
  Mac-DB15BD556843C820 |       iMac17,1 |   IM171.88Z.0110.B00.1708080012
  Mac-B809C3757DA9BB8D |       iMac17,1 |   IM171.88Z.0110.B00.1708080012
  Mac-65CE76090165799A |       iMac17,1 |   IM171.88Z.0110.B00.1708080012
  Mac-4B682C642B45593E |       iMac18,1 |   IM181.88Z.0151.B00.1708080034
  Mac-77F17D7DA9285301 |       iMac18,2 |   IM183.88Z.0151.B00.1708080034
  Mac-BE088AF8C5EB4FA2 |       iMac18,3 |   IM183.88Z.0151.B00.1708080034
  Mac-EE2EBD4B90B839A8 |    MacBook10,1 |   MB101.88Z.0154.B00.1708080122
  Mac-BE0E8AC46FE800CC |     MacBook8,1 |    MB81.88Z.0168.B00.1708080033
  Mac-F305150B0C7DEEEF |        Unknown |    MB81.88Z.0168.B00.1708080033
  Mac-9AE82516C7C6B903 |     MacBook9,1 |    MB91.88Z.0159.B00.1708080011
  Mac-9F18E312C5C2BF0B |  MacBookAir7,1 |   MBA71.88Z.0171.B00.1708072210
  Mac-937CB26E2E02BB01 |  MacBookAir7,2 |   MBA71.88Z.0171.B00.1708072210
  Mac-06F11FD93F0323C5 | MacBookPro11,4 |  MBP114.88Z.0177.B00.1708080033
  Mac-06F11F11946D27C5 | MacBookPro11,5 |  MBP114.88Z.0177.B00.1708080033
  Mac-E43C1C25D4880AD6 | MacBookPro12,1 |  MBP121.88Z.0171.B00.1708080033
  Mac-473D31EABEB93F9B | MacBookPro13,1 |  MBP131.88Z.0212.B00.1708080127
  Mac-66E35819EE2D0D05 | MacBookPro13,2 |  MBP132.88Z.0233.B00.1708080034
  Mac-1BDAB09B689867E2 |        Unknown |  MBP132.88Z.0233.B00.1708080034
  Mac-A5C67F76ED83108C | MacBookPro13,3 |  MBP133.88Z.0233.B00.1708080034
  Mac-B4831CEBD52A0C4C | MacBookPro14,1 |  MBP141.88Z.0167.B00.1708080034
  Mac-CAD6701F7CEA0921 | MacBookPro14,2 |  MBP142.88Z.0167.B00.1708080034
  Mac-551B86E5744E2388 | MacBookPro14,3 |  MBP143.88Z.0167.B00.1708080129
          Mac-F221DCC8 |      MacPro5,1 |    MP51.88Z.0084.B00.1708080528
---------------------------------------------------------------------------
> WARNING: Your EFI ROM AAPJ1371.88Z.E087.B00.1708170938 is not up-to-date!! <
---------------------------------------------------------------------------

The highlighted board-id (Mac-7BA5B2D9E42DDD94) is the apparent new iMac Pro. One with a 8-core/16 threads and Intel W-2140B processor. And for people wondering about its performance. Well. Take a look at this OpenCL score. This SKU runs at a lower (500 MHz) base frequency than the W-2145. Which runs at a base frequency of 3.7GHz. The 10 core/20 thread SKU is the W-2150B with a base frequency of 3GHz. With a 300MHz lower base frequency than the W-2155.

There are also two (1, 2) CPU Geekbench results with an early SKU (showing Intel 0000%) with a matching CPUID of the one that I found, back in August, in the leaked firmware of the iMac Pro. These are running 1300MHz slower than the W-2145 but note that this may be in fact be the 18 core SKU. Thing is. Apple is using a core/thread limiter. In short. You should take the results with a grain of salt.

Another new one, at the bottom of the list, is the Mac-F221DCC8/MacPro5,1 which comes with the High Sierra installer app.

There are also a total of five board-id’s with an Apple model set to “Unknown”. I did this because we don’t officially know any of their real model names. You may count only four of them, but there’s also this one:

Mac-CF21D135A7D34AA6 |        Unknown |AAPLX589.88Z.0161.B00.1705100046

Which I left out intentionally. I have some ideas about the following board-id’s:

Mac-1BDAB09B689867E2 -> MacBookPro13,n
Mac-F305150B0C7DEEEF -> MacBook8,n
Mac-D1FF70AF6D8C849A -> MacBookPro11,n

But that’s educated guesswork only. Nothing official. Anyway. Here’s the change log. Per revision. From v1.5 up to v2.2

Changelog for v1.5:

– check for installSeed.py and download it when missing.
– code refactored (no more code duplication).
– the output of the scrit is now a lot quicker.
– now reads the supported board-id’s from the firmware payload files.
– changed version number to v1.5

Changelog for v1.6:

– support for older version of efiupdater added.

Changelog for v1.7:

– now using the right patch for support of older versions of efiupdater.

Changelog for v1.8:

– whitespace changes.
– now checking both UUID’s (for old and new hardware models).

Changelog for v1.9:

– read EFI version from IODeviceTree:/rom.

Changelog for v2.0:

– check for Mac-F221DCC8/MacPro5,1 Apple UUID added.
– made some preparation for the next major release.
– shebang line changed.

Changelog for v2.1:
– now also checks the firmware directory of the installer.
– use filename instead of myBoardID (for MacPro5,1).
– removed spaces in one of the Apple UUID’s (done to verify the UUID).

Changelog for v2.2:
– removed a spurious semicolon.
– convert board-id to string and remove the trailing null byte.

EFIver.py v1.5 released

Wait what? Another update? Yes indeed. But listen. The previous versions of EFIver.py where nothing more than a rewrite of a bash script, but the next latest update of EFIver.py (version 1.5) is an important update. It’s not only a rewrite of the first three versions of EFIver.py, but now it also reads the supported board-id’s from the actual firmware files. It will now also download installSeed.py for you (for people who haven’t already). Now take a look at the output:

---------------------------------------------------------------------------
          EFIver.py v1.5 Copyright (c) 2017 by Pike R. Alpha
---------------------------------------------------------------------------
          Mac-F2268CC8 |       iMac10,1 |   IM101.88Z.00CF.B00.1708080133
          Mac-F2268DAE |       iMac11,1 |   IM111.88Z.0037.B00.1708080241
          Mac-F2238AC8 |       iMac11,2 |   IM112.88Z.005B.B00.1708080439
  Mac-942B5BF58194151B |       iMac12,1 |   IM121.88Z.004D.B00.1708080012
  Mac-00BE6ED71E35EB86 |       iMac13,1 |   IM131.88Z.010F.B00.1708080805
  Mac-031B6874CF7F642A |       iMac14,1 |   IM141.88Z.0123.B00.1708211404
  Mac-27ADBB7B4CEE8E61 |       iMac14,2 |   IM142.88Z.0123.B00.1708211454
  Mac-77EB7D7DAF985301 |       iMac14,3 |   IM143.88Z.0123.B00.1708211454
  Mac-81E3E92DD6088272 |       iMac14,4 |   IM144.88Z.0183.B00.1708080656
  Mac-42FD25EABCABB274 |       iMac15,1 |   IM151.88Z.0211.B00.1708080656
  Mac-FA842E06C61E91C5 |       iMac15,1 |   IM151.88Z.0211.B00.1708080656
          Mac-F22C8AC8 |     MacBook6,1 |    MB61.88Z.00CB.B00.1708080203
          Mac-F22C89C8 |     MacBook7,1 |    MB71.88Z.003D.B00.1708080317
  Mac-942452F5819B1C1B |  MacBookAir3,1 |   MBA31.88Z.0067.B00.1708080355
  Mac-C08A6BB70A942AC2 |  MacBookAir4,1 |   MBA41.88Z.007B.B00.1708072159
  Mac-66F35F19FE2A0D05 |  MacBookAir5,1 |   MBA51.88Z.00F4.B00.1708080803
  Mac-35C1E88140C3E6CF |  MacBookAir6,1 |   MBA61.88Z.0103.B00.1708080653
  Mac-7DF21CB3ED6977E5 |  MacBookAir6,2 |   MBA61.88Z.0103.B00.1708080653
  Mac-C3EC7CD22292981F | MacBookPro10,1 |  MBP101.88Z.00F2.B00.1708080809
  Mac-AFD8A9D944EA4843 | MacBookPro10,2 |  MBP102.88Z.010B.B00.1708080805
  Mac-189A3D4F975D5FFC | MacBookPro11,1 |  MBP111.88Z.0142.B00.1708080655
  Mac-D1FF70AF6D8C849A |        Unknown |  MBP111.88Z.0142.B00.1708080655
  Mac-3CBD00234E554E41 | MacBookPro11,2 |  MBP112.88Z.0142.B00.1708080655
  Mac-2BD1B31983FE1663 | MacBookPro11,3 |  MBP112.88Z.0142.B00.1708080655
          Mac-F22589C8 |  MacBookPro6,1 |   MBP61.88Z.005A.B00.1708072217
          Mac-F222BEC8 |  MacBookPro7,1 |   MBP71.88Z.003D.B00.1708080058
  Mac-94245B3640C91C81 |  MacBookPro8,1 |   MBP81.88Z.004D.B00.1708080655
  Mac-4B7AC7E43945597E |  MacBookPro9,1 |   MBP91.88Z.00D7.B00.1708080744
          Mac-F2208EC8 |     Macmini4,1 |    MM41.88Z.0045.B00.1708072325
  Mac-8ED6AF5B48C039E1 |     Macmini5,1 |    MM51.88Z.007B.B00.1708080744
  Mac-031AEE4D24BFF0B1 |     Macmini6,1 |    MM61.88Z.010B.B00.1708080649
  Mac-35C5E08120C7EEAF |     Macmini7,1 |    MM71.88Z.0224.B00.1708080033
  Mac-F60DEB81FF30ACF6 |      MacPro6,1 |    MP61.88Z.0120.B00.1708080652
  Mac-A369DDC4E67F1C45 |       iMac16,1 |   IM161.88Z.0212.B00.1708080033
  Mac-FFE5EF870D7BA81A |       iMac16,2 |   IM162.88Z.0212.B00.1708080033
  Mac-DB15BD556843C820 |       iMac17,1 |   IM171.88Z.0110.B00.1708080012
  Mac-B809C3757DA9BB8D |       iMac17,1 |   IM171.88Z.0110.B00.1708080012
  Mac-65CE76090165799A |       iMac17,1 |   IM171.88Z.0110.B00.1708080012
  Mac-4B682C642B45593E |       iMac18,1 |   IM181.88Z.0151.B00.1708080034
  Mac-77F17D7DA9285301 |       iMac18,2 |   IM183.88Z.0151.B00.1708080034
---------------------------------------------------------------------------
> Mac-BE088AF8C5EB4FA2 |       iMac18,3 |   IM183.88Z.0151.B00.1708080034 <
---------------------------------------------------------------------------
  Mac-EE2EBD4B90B839A8 |    MacBook10,1 |   MB101.88Z.0154.B00.1708080122
  Mac-BE0E8AC46FE800CC |     MacBook8,1 |    MB81.88Z.0168.B00.1708080033
  Mac-F305150B0C7DEEEF |        Unknown |    MB81.88Z.0168.B00.1708080033
  Mac-9AE82516C7C6B903 |     MacBook9,1 |    MB91.88Z.0159.B00.1708080011
  Mac-9F18E312C5C2BF0B |  MacBookAir7,1 |   MBA71.88Z.0171.B00.1708072210
  Mac-937CB26E2E02BB01 |  MacBookAir7,2 |   MBA71.88Z.0171.B00.1708072210
  Mac-06F11FD93F0323C5 | MacBookPro11,4 |  MBP114.88Z.0177.B00.1708080033
  Mac-06F11F11946D27C5 | MacBookPro11,5 |  MBP114.88Z.0177.B00.1708080033
  Mac-E43C1C25D4880AD6 | MacBookPro12,1 |  MBP121.88Z.0171.B00.1708080033
  Mac-473D31EABEB93F9B | MacBookPro13,1 |  MBP131.88Z.0212.B00.1708080127
  Mac-66E35819EE2D0D05 | MacBookPro13,2 |  MBP132.88Z.0233.B00.1708080034
  Mac-1BDAB09B689867E2 |        Unknown |  MBP132.88Z.0233.B00.1708080034
  Mac-A5C67F76ED83108C | MacBookPro13,3 |  MBP133.88Z.0233.B00.1708080034
  Mac-B4831CEBD52A0C4C | MacBookPro14,1 |  MBP141.88Z.0167.B00.1708080034
  Mac-CAD6701F7CEA0921 | MacBookPro14,2 |  MBP142.88Z.0167.B00.1708080034
  Mac-551B86E5744E2388 | MacBookPro14,3 |  MBP143.88Z.0167.B00.1708080129
---------------------------------------------------------------------------
> WARNING: Your EFI ROM IM183.88Z.0058.B00.1705091711 is not up-to-date!! <
---------------------------------------------------------------------------

You may not spot the extra data right away, but this list is not only longer, but it is also a complete representation of the data in FirmwareUpdate.pkg

This version of EFIver.py will soon be made is now available. Need to do something for work first. Actually. No. That’s a lie. I first need my cappuccino. Then I can start doing some stuff for work 😉

Note: The warning was triggered by using fake EFI data. This is not a real world scenario. Hey. I had no other way to check it 😉

Tip: I got a tip from someone at a Github issue that people who are using python from homebrew, instead of the native version of python of macOS, should use this to launch the script:

/usr/bin/python efiver.py

EFIver.py v1.2 released

A new update of efiver.py is now available from my Github repository.

Version 1.1 has a fix for an index error for .scap files, and will now correctly show the version info of all of the extracted files.

Version 1.2 comes with a new EFI ROM version check, and highlights the data for your Mac. Look here:

---------------------------------------------------------------------------
          EFIver.py v1.2 Copyright (c) 2017 by Pike R. Alpha
---------------------------------------------------------------------------
          Mac-F2268CC8 |       iMac10,1 |   IM101.88Z.00CF.B00.1708080133
          Mac-F2268DAE |       iMac11,1 |   IM111.88Z.0037.B00.1708080241
          Mac-F2238AC8 |       iMac11,2 |   IM112.88Z.005B.B00.1708080439
  Mac-942B5BF58194151B |       iMac12,1 |   IM121.88Z.004D.B00.1708080012
  Mac-00BE6ED71E35EB86 |       iMac13,1 |   IM131.88Z.010F.B00.1708080805
  Mac-031B6874CF7F642A |       iMac14,1 |   IM141.88Z.0123.B00.1708211404
  Mac-27ADBB7B4CEE8E61 |       iMac14,2 |   IM142.88Z.0123.B00.1708211454
  Mac-77EB7D7DAF985301 |       iMac14,3 |   IM143.88Z.0123.B00.1708211454
  Mac-81E3E92DD6088272 |       iMac14,4 |   IM144.88Z.0183.B00.1708080656
  Mac-FA842E06C61E91C5 |       iMac15,1 |   IM151.88Z.0211.B00.1708080656
          Mac-F22C8AC8 |     MacBook6,1 |    MB61.88Z.00CB.B00.1708080203
          Mac-F22C89C8 |     MacBook7,1 |    MB71.88Z.003D.B00.1708080317
  Mac-942452F5819B1C1B |  MacBookAir3,1 |   MBA31.88Z.0067.B00.1708080355
  Mac-C08A6BB70A942AC2 |  MacBookAir4,1 |   MBA41.88Z.007B.B00.1708072159
  Mac-66F35F19FE2A0D05 |  MacBookAir5,1 |   MBA51.88Z.00F4.B00.1708080803
  Mac-35C1E88140C3E6CF |  MacBookAir6,1 |   MBA61.88Z.0103.B00.1708080653
  Mac-C3EC7CD22292981F | MacBookPro10,1 |  MBP101.88Z.00F2.B00.1708080809
  Mac-AFD8A9D944EA4843 | MacBookPro10,2 |  MBP102.88Z.010B.B00.1708080805
  Mac-189A3D4F975D5FFC | MacBookPro11,1 |  MBP111.88Z.0142.B00.1708080655
  Mac-3CBD00234E554E41 | MacBookPro11,2 |  MBP112.88Z.0142.B00.1708080655
          Mac-F22589C8 |  MacBookPro6,1 |   MBP61.88Z.005A.B00.1708072217
          Mac-F222BEC8 |  MacBookPro7,1 |   MBP71.88Z.003D.B00.1708080058
  Mac-94245B3640C91C81 |  MacBookPro8,1 |   MBP81.88Z.004D.B00.1708080655
  Mac-4B7AC7E43945597E |  MacBookPro9,1 |   MBP91.88Z.00D7.B00.1708080744
          Mac-F2208EC8 |     Macmini4,1 |    MM41.88Z.0045.B00.1708072325
  Mac-8ED6AF5B48C039E1 |     Macmini5,1 |    MM51.88Z.007B.B00.1708080744
  Mac-031AEE4D24BFF0B1 |     Macmini6,1 |    MM61.88Z.010B.B00.1708080649
  Mac-35C5E08120C7EEAF |     Macmini7,1 |    MM71.88Z.0224.B00.1708080033
  Mac-F60DEB81FF30ACF6 |      MacPro6,1 |    MP61.88Z.0120.B00.1708080652
  Mac-A369DDC4E67F1C45 |       iMac16,1 |   IM161.88Z.0212.B00.1708080033
  Mac-FFE5EF870D7BA81A |       iMac16,2 |   IM162.88Z.0212.B00.1708080033
  Mac-DB15BD556843C820 |       iMac17,1 |   IM171.88Z.0110.B00.1708080012
  Mac-4B682C642B45593E |       iMac18,1 |   IM181.88Z.0151.B00.1708080034
---------------------------------------------------------------------------
> Mac-BE088AF8C5EB4FA2 |       iMac18,3 |   IM183.88Z.0151.B00.1708080034 <
---------------------------------------------------------------------------
  Mac-EE2EBD4B90B839A8 |    MacBook10,1 |   MB101.88Z.0154.B00.1708080122
  Mac-BE0E8AC46FE800CC |     MacBook8,1 |    MB81.88Z.0168.B00.1708080033
  Mac-9AE82516C7C6B903 |     MacBook9,1 |    MB91.88Z.0159.B00.1708080011
  Mac-9F18E312C5C2BF0B |  MacBookAir7,1 |   MBA71.88Z.0171.B00.1708072210
  Mac-06F11FD93F0323C5 | MacBookPro11,4 |  MBP114.88Z.0177.B00.1708080033
  Mac-E43C1C25D4880AD6 | MacBookPro12,1 |  MBP121.88Z.0171.B00.1708080033
  Mac-473D31EABEB93F9B | MacBookPro13,1 |  MBP131.88Z.0212.B00.1708080127
  Mac-66E35819EE2D0D05 | MacBookPro13,2 |  MBP132.88Z.0233.B00.1708080034
  Mac-A5C67F76ED83108C | MacBookPro13,3 |  MBP133.88Z.0233.B00.1708080034
  Mac-B4831CEBD52A0C4C | MacBookPro14,1 |  MBP141.88Z.0167.B00.1708080034
  Mac-CAD6701F7CEA0921 | MacBookPro14,2 |  MBP142.88Z.0167.B00.1708080034
  Mac-551B86E5744E2388 | MacBookPro14,3 |  MBP143.88Z.0167.B00.1708080129
---------------------------------------------------------------------------
> WARNING: Your EFI ROM IM183.88Z.0058.B00.1705091711 is not up-to-date!! <
---------------------------------------------------------------------------

See also: New Handy Script Called efiver.py

Edit: In case you need some help…

1.) Open a terminal window

2.) enter: cd ~/Downloads

3.) enter: curl https://raw.githubusercontent.com/Piker-Alpha/HandyScripts/master/efiver.py -o efiver.py

4.) enter: curl https://raw.githubusercontent.com/Piker-Alpha/HandyScripts/master/installSeed.py -o installSeed.py

5.) enter: chmod +x efiver.py

6.) enter: chmod +x installSeed.py

7.) enter: ./efiver.py

New Handy Script Called efiver.py

Two days ago I mentioned efiver.py and today I like to share it with you. Running efiver.py is simple a matter of entering: ./efiver.py

Update: A new version of efiver.py (v1.2) is now available. See also EFIver.py v1.2 released.

Note the initial output of the script:

installSeed.py v3.3 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 Download(s):
FirmwareUpdate.pkg [200477927 bytes]

Download of FirmwareUpdate.pkg finished
Expanding FirmwareUpdate.pkg to /tmp/FirmwareUpdate
Password:

Correct. That is the output of installSeed.py and efiver.py relies on it, for the actual download of, and expansion of FirmwareUpdate.pkg. In short. Make sure to download it as well. In case you haven’t already.

Anyway. Here is the output that matters:

-----------------------------------------------------------------------
          efiver.py v1.0 Copyright (c) 2017 by Pike R. Alpha
-----------------------------------------------------------------------
        Mac-F2268CC8 |       iMac10,1 |   IM101.88Z.00CF.B00.1708080133
        Mac-F2268DAE |       iMac11,1 |   IM111.88Z.0037.B00.1708080241
        Mac-F2238AC8 |       iMac11,2 |   IM112.88Z.005B.B00.1708080439
Mac-942B5BF58194151B |       iMac12,1 |   IM121.88Z.004D.B00.1708080012
Mac-00BE6ED71E35EB86 |       iMac13,1 |   IM131.88Z.010F.B00.1708080805
        Mac-F22C8AC8 |     MacBook6,1 |    MB61.88Z.00CB.B00.1708080203
        Mac-F22C89C8 |     MacBook7,1 |    MB71.88Z.003D.B00.1708080317
Mac-942452F5819B1C1B |  MacBookAir3,1 |   MBA31.88Z.0067.B00.1708080355
Mac-C08A6BB70A942AC2 |  MacBookAir4,1 |   MBA41.88Z.007B.B00.1708072159
Mac-66F35F19FE2A0D05 |  MacBookAir5,1 |   MBA51.88Z.00F4.B00.1708080803
Mac-C3EC7CD22292981F | MacBookPro10,1 |  MBP101.88Z.00F2.B00.1708080809
Mac-AFD8A9D944EA4843 | MacBookPro10,2 |  MBP102.88Z.010B.B00.1708080805
        Mac-F22589C8 |  MacBookPro6,1 |   MBP61.88Z.005A.B00.1708072217
        Mac-F222BEC8 |  MacBookPro7,1 |   MBP71.88Z.003D.B00.1708080058
Mac-94245B3640C91C81 |  MacBookPro8,1 |   MBP81.88Z.004D.B00.1708080655
Mac-4B7AC7E43945597E |  MacBookPro9,1 |   MBP91.88Z.00D7.B00.1708080744
        Mac-F2208EC8 |     Macmini4,1 |    MM41.88Z.0045.B00.1708072325
Mac-8ED6AF5B48C039E1 |     Macmini5,1 |    MM51.88Z.007B.B00.1708080744
Mac-031AEE4D24BFF0B1 |     Macmini6,1 |    MM61.88Z.010B.B00.1708080649
Mac-F60DEB81FF30ACF6 |      MacPro6,1 |    MP61.88Z.0120.B00.1708080652
Mac-A369DDC4E67F1C45 |       iMac16,1 |   IM161.88Z.0212.B00.1708080033
Mac-FFE5EF870D7BA81A |       iMac16,2 |   IM162.88Z.0212.B00.1708080033
Mac-DB15BD556843C820 |       iMac17,1 |   IM171.88Z.0110.B00.1708080012
Mac-4B682C642B45593E |       iMac18,1 |   IM181.88Z.0151.B00.1708080034
Mac-BE088AF8C5EB4FA2 |       iMac18,3 |   IM183.88Z.0151.B00.1708080034
Mac-EE2EBD4B90B839A8 |    MacBook10,1 |   MB101.88Z.0154.B00.1708080122
Mac-BE0E8AC46FE800CC |     MacBook8,1 |    MB81.88Z.0168.B00.1708080033
Mac-9AE82516C7C6B903 |     MacBook9,1 |    MB91.88Z.0159.B00.1708080011
Mac-9F18E312C5C2BF0B |  MacBookAir7,1 |   MBA71.88Z.0171.B00.1708072210
Mac-06F11FD93F0323C5 | MacBookPro11,4 |  MBP114.88Z.0177.B00.1708080033
Mac-E43C1C25D4880AD6 | MacBookPro12,1 |  MBP121.88Z.0171.B00.1708080033
Mac-473D31EABEB93F9B | MacBookPro13,1 |  MBP131.88Z.0212.B00.1708080127
Mac-66E35819EE2D0D05 | MacBookPro13,2 |  MBP132.88Z.0233.B00.1708080034
Mac-A5C67F76ED83108C | MacBookPro13,3 |  MBP133.88Z.0233.B00.1708080034
Mac-B4831CEBD52A0C4C | MacBookPro14,1 |  MBP141.88Z.0167.B00.1708080034
Mac-CAD6701F7CEA0921 | MacBookPro14,2 |  MBP142.88Z.0167.B00.1708080034
Mac-551B86E5744E2388 | MacBookPro14,3 |  MBP143.88Z.0167.B00.1708080129
-----------------------------------------------------------------------

Note: There are three different boardID’s for the iMac17,1 but only one is shown since all EFI ROM version are the same.

No more looking up of board/model ID’s. It’s all there. And it is very easy to use.

Note that this is only the initial release, and I hope that you like it.

Hey. We could also add a new script to extract the firmware mask from the payloads. What do you think?

p.s. The BIOS date is here: 1708080129

New Handy Script Called smcver.py

I converted an old bash script to Python and this new scripts does everything on it’s own. You only need to launch the script and that’s about it. What does it? Who needs it? Well. That is pretty simple, when you look at the output of smcver.py:

--------------------------------------------------
SMCver.py v1.0 Copyright (c) 2017 by Pike R. Alpha
--------------------------------------------------
Mac-031B6874CF7F642A |       iMac14,1 | v2.14f24
Mac-189A3D4F975D5FFC | MacBookPro11,1 | v2.16f68
Mac-27ADBB7B4CEE8E61 |       iMac14,2 | v2.15f7
Mac-2BD1B31983FE1663 | MacBookPro11,3 | v2.19f12
Mac-35C1E88140C3E6CF |  MacBookAir6,1 | v2.12f143
Mac-35C5E08120C7EEAF |     Macmini7,1 | v2.24f32
Mac-3CBD00234E554E41 | MacBookPro11,2 | v2.18f15
Mac-42FD25EABCABB274 |       iMac15,1 | v2.22f16
Mac-473D31EABEB93F9B | MacBookPro13,1 | v2.36f97
Mac-65CE76090165799A |       iMac17,1 | v2.33f10
Mac-66E35819EE2D0D05 | MacBookPro13,2 | v2.37f20
Mac-77EB7D7DAF985301 |       iMac14,3 | v2.17f7
Mac-7DF21CB3ED6977E5 |  MacBookAir6,2 | v2.13f15
Mac-81E3E92DD6088272 |       iMac14,4 | v2.21f92
Mac-937CB26E2E02BB01 |  MacBookAir7,2 | v2.27f2
Mac-9AE82516C7C6B903 |     MacBook9,1 | v2.35f105
Mac-9F18E312C5C2BF0B |  MacBookAir7,1 | v2.26f2
Mac-A369DDC4E67F1C45 |       iMac16,1 | v2.31f36
Mac-A5C67F76ED83108C | MacBookPro13,3 | v2.38f7
Mac-B809C3757DA9BB8D |       iMac17,1 | v2.34f2
Mac-BE0E8AC46FE800CC |     MacBook8,1 | v2.25f87
Mac-DB15BD556843C820 |       iMac17,1 | v2.33f10
Mac-E43C1C25D4880AD6 | MacBookPro12,1 | v2.28f7
Mac-F60DEB81FF30ACF6 |      MacPro6,1 | v2.20f18
Mac-FA842E06C61E91C5 |       iMac15,1 | v2.23f11
Mac-FFE5EF870D7BA81A |       iMac16,2 | v2.32f20
--------------------------------------------------

With my new script, everyone can check the latest Apple’s SMC version info. You don’t need anyone. No more waiting. Not for anyone. Nobody controls you. You are in control. Totally.

Note: smcver.py calls installSeed.py v3.3+ for the actual download and expanding of FirmwareUpdate.pkg This new update of instalSeed.py and smcver.py will be shared a.s.a.p.

Another script (efiver.py) to check the latest EFI ROM version info will also be shared soon. With the same kind of informative (board-id/model-id) output.

macOS High Sierra 10.13 Build 17A365 Released…

Today Apple released High Sierra 10.13 Build 17A365. Your Mac. Elevated. Let the fun begin…

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

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

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

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

Queued Download(s):
AppleDiagnostics.dmg [2613171 bytes]
BaseSystem.chunklist [1984 bytes]
AppleDiagnostics.chunklist [328 bytes]
InstallAssistantAuto.pkg [10849613 bytes]
OSInstall.mpkg [670017 bytes]
InstallESDDmg.chunklist [16348 bytes]
InstallInfo.plist [1584 bytes]
InstallESDDmg.pkg [4668317536 bytes]
RecoveryHDMetaDmg.pkg [492474212 bytes]
BaseSystem.dmg [490961728 bytes]

Download of AppleDiagnostics.chunklist finished
Download of InstallInfo.plist finished
Download of BaseSystem.chunklist finished
Download of OSInstall.mpkg finished
Download of InstallESDDmg.chunklist 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 /tmp/091-34298/installer.pkg

Running installer ...
installer: Package name is Install macOS High Sierra
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 ...

Edit: I need to add some checks to installSeed.py and I hope to complete and commit the changes a.s.a.p. but I am feeling sick so it may take me a day longer. Maybe.

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.

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.