Sunday 5 August 2018

Extracting EFI firmware for standalone install in High Sierra

When Apple released High Sierra they included built-in to the Install macOS High Sierra.app an EFI firmware updater as well. This was mainly to add additional support for booting from APFS volumes but also as part of a plan to continuously check that the Mac firmware had not been infected by malware and also as a way of adding potentially regular EFI firmware updates.

Unfortunately since this firmware update was not available separately and because it could not be automated as part of a traditional disk image based imaging process e.g. DeployStudio this caused some difficulties for Mac admins. As a result Mac admins quickly created a workaround in the form of 'extracting' the EFI firmware updater from a standard Install macOS High Sierra.app so it could be run separately. This indeed worked fine for High Sierra 10.13.1 but Apple changed things again in subsequent versions at least in 10.13.3, I don't have a copy of 10.13.2 to check and the suggested approach then became broken.

Note: Because correctly deploying High Sierra with the built-in firmware updates is effectively impossible with a disk imaging approach Apple say you should instead use the DEP - Device Enrolment Program approach instead. This has its own complexities hence why some Mac admins came up with the original means of extracting the EFI firmware updater.

This script gets round the change introduced in 10.13.3 once more and works for 10.13.6 and I would expect also 10.13.3 to 10.13.5 inclusive. Basically it includes a copy of a sub-script that is no longer included by Apple as of 10.13.3 and later. I also use the munkipkg tool rather than pkgutil so you will need to download munkipkg from here https://github.com/munki/munki-pkg and install it in /usr/local/bin

It should be noted that the change that Apple made in presumably 10.13.3 was to add further firmware updaters to the same mechanism in addition to the original EFI firmware update that is of most concern to Mac admins. Some of the other additional updaters cover SSD firmware and USB-C firmware. It is to me at least, impossible to tell if my 'fixed' version happens to install those as well, I would suspect not.

Therefore as Apple say you should not do this. However at your own risk here is my fixed script.

https://github.com/jelockwood/extract-firmware

If the script completes successfully the custom built installer package is available at /tmp/FirmwareUpddateStandalone/FirmwareUpdateStandalone.pkg

You may want to also check your Mac to see if it has the correct EFI firmware, this is most easily done by downloading and running this free tool - https://github.com/duo-labs/EFIgy-GUI

Nest Hello, Skybell and Ring - UK smart doorbell installations

As you will know if you have come looking for this article these are the three leading smart door bells all of which are US products. This unfortunately means they are more complex to install in the UK and Europe due to the differences between normal wired doorbells in the US and the EU.

In the UK and Europe doorbells typically use an 8V AC transformer like this -


However the US typically uses a 16V AC transformer like this -

The above is a 16V AC transformer but is for 110V not the European standard of 220V. The reason the US can get away with a lethal looking transformer like this is that it is converting from 110V and this is less dangerous than the European 220V.

So, these smart door bells are designed to use a higher voltage than a typical UK/EU wired doorbell and this means we cannot unless we are very lucky use an existing door bell transformer. As I mentioned typically UK/EU wired doorbells come with an 8V transformer as shown, however 12V AC transformers are also widely available and this difference is usually still within the bounds an 8V doorbell will accept in fact some Friedland wired doorbells will accept 16V AC.

First what do each of the three smart doorbell brands say they actually need?

Nest Hello
Skybell HD
Skybell Trim Plus
Ring 2
Ring Pro
16-24V AC
10-36V AC
10-36V AC
Battery pack
16-24V AC


As we can see from the above table the most common requirement is for 16V AC which happens to be the hardest to find in the UK.

As far as I can tell Nest, Skybell and Ring do the following.

  • Nest tell you to find your own 16V transformer or to get a professional installer - and they offer to include professional installation for you
  • Skybell have a European agent who sells 12V transformers
  • Ring include in the box in Europe a 24V transformer as standard - although this creates a new problem as you will see

So Nest are the least helpful for DIYers. Considering they did a very good job making UK/EU versions of their Thermostat and Protect fire alarm this is very surprising. Skybell's European agent has a solution but it is only suitable for Skybell being only 12V. Ring have themselves completely solved the problem but as I mentioned created a new one.

Whilst a typical UK/EU wired doorbell as mentioned uses 8V AC it can cope with 12V AC or even 16V AC as this is still low voltage. However I consider it unlikely it would cope with 24V AC which after all is three times the more typical 8V AC. Ring acknowledge this and their solution requires you to stop using the wired door chime and to use instead Ring's own wireless ringer. As far as I am aware neither Nest or Skybell support wireless ringers.

In my own case I planned to buy a Skybell Trim Plus and in theory an easily obtainable 12V transformer would do the job but I wanted to have the most flexible solution so I myself wanted to get a transformer that could do ideally 12V, 16V and 24V - just in case. There are a few multi voltage bell transformers doing 8V, 12V and 24V but ones doing 16V as well as 12 and 24 are extremely rare. Fortunately I did manage to find one. See - http://protekuk.co.uk/24V-8VA-2-Module-Bell-Transformer-BT8-24


Whilst as shown above all three brands claim to support using 16V AC I have seen reports of problems doing this with the Ring Pro such as losing connectivity and their own transformer included as standard is a 24V one suggesting 16V might indeed not be sufficient for the Ring Pro. See - https://support.ring.com/hc/en-us/articles/115000148786-Ring-Video-Doorbell-Pro-European-Version

Interestingly one can see from the above Ring article that it has four screw holes at the top like the above Protek model. This might suggest it does support additional voltages to the 24V but the picture is too low resolution to read the text on the Ring transformer to confirm this.

Note: The various plugin transformers listed for smart doorbells might, indeed should work for the smart doorbell but do not support using an existing wired chime.

So I have bought the Protek transformer and fitted it with my existing doorbell and chime and wired it to use 16V AC. This is working fine. I then tried to order to the Skybell Trim Plus from the European agent - https://www.topsolute.com/ only to find they are temporarily out of stock.