It turned out the missing list of Wi-Fi networks in macOS recovery mode (recoveryOS) was a temporary bug in recoveryOS, that has since been fixed. However, the other part of my question was still a challenge due to Emoji and the potential for there to be clashing Emoji network names with neighbours, and I found a solution to this part that I wanted to share.
If your wireless network SSID has Emoji in it, they will not be rendered in recoveryOS, because the necessary fonts are missing. However, it is still possible to join these networks by using the command-line.
As I mentioned in my comment above, SSIDs can be any binary sequence and are typically treated (or declared) as UTF-8 encoded. Therefore, you need to provide the UTF-8 encoding of your Emoji-containing network name to the command-line utility airportd
, available on recoveryOS. If you don't already know this, it can be tricky to determine, so an easy way is to first attempt to scan for it (this won't work if your network name is hidden, in which case you will need to ):
# /usr/libexec/airportd scan | less -S
The output will be all the local wireless networks, one per line. If there are multiple Emoji network results of the same length as yours, you might be able to identify your own by the BSSID, which should be printed on your wireless access point.
�� - ssid=f09f949df09fa587, shortSSID=4230860103, bssid=2c:... security=wpa2-personal
Note the security property and match it to one of open,wep,wpa,wpa2,wpa3
.
Then, take the SSID value (not the shortSSID value) of your access point and create a command in the following format:
/usr/libexec/airportd assoc --ssid $(echo -n 'f09f949df09fa587' | perl -e 'print pack "H*", <STDIN>') --security wpa2 --password '4tj89tAJ32of9D1pF'
Note that the value in the single quotes following echo -n
is the value of our SSID (i.e. the UTF-8 encoded form of our Emoji SSID), the security profile is a shortened form of wpa2-personal
and the password is your wireless network's password. After a few seconds, the command will output:
Successfully associated to network
And you should now be able to use your network in recoveryOS.
The SSID can be any alphanumeric, case-sensitive entry from 2 to 32 characters. The printable characters plus the space (ASCII 0x20) are allowed, but these six characters are not: ?, ", $, [, \, ], and +.
If you can, rename the SSID to follow the accepted naming conventions.