AirPlay Receiver on an unsupported mac with Monterey

Posted

While waiting for macOS Universal Control, I wanted to try AirPlay Receiver. Unfortunately, it is not supported (“locked”) on my older macBook. But recently I stumbled upon Mr. Macintosh’s “Airplay BLOCKED on Monterey? How to unlock it!” video on YouTube!

The AirPlay Receiver mac must have Monterey v12 installed, which is supported on most devices from 2015 onwards! Alas, the AirPlay Receiver functionality is only enabled on newer devices from around 2018 onwards...

Enter OpenCore Legacy Patcher, to unlock the AirPlay Receiver service on older macs (like my 2015 MacBook Pro)! The OpenCore Legacy Patcher July 2021 release notes mention the Unlock AirPlay to Mac, Universal Control and NightShift Functionality. Looking forward to Universal Control too!

Danger: Use this tool at your own risk!

According to Mr. Macintosh, there are two ways to use OpenCore Legacy Patcher:

  • boot the unsupported mac from an external USB drive with OpenCore Legacy Patcher boot code (EFI) on it - this will be a temporary change, upon reboot without the USB, you mac will boot normally, or
  • allow OpenCore Legacy Patcher to make changes on the unsupported mac’s boot EFI itself - this will be a permanent change, but will not need manual intervention to boot to USB every time.

Of course I elected the first method - safer, temporary, and hopefully, does not cause issues down the line with updates.

The steps:

Format External USB Flash Drive

First, grab an empty USB flash drive. I first used a 16 GB USB drive, and then a 2 GB USB drive - both worked. I don’t have any smaller, so can tell you the minimum size.

Danger: All files will be erased!

Run Disk Utility.app to format it:

  • Click Show All Devices in the View toolbar drop down menu.
  • From the tree view under External, right-click the external device - mine is called External USB DISK Media and select Erase....
  • Select either MS-DOS (FAT) or Mac OS Extended (Journaled):
    • For my larger 16 GB drive, I could use Mac OS Extended (Journaled).
    • However, for my tiny 2 GB drive, OpenCore Patcher did not list it unless I formatted as FAT (Disk Utility formats as FAT32 to be precise)
  • And most importantly, sure the Scheme is GUID Partition Map!

Erasing a USB drive with Disk Utility

Run OpenCore Legacy Patcher

Next, download the latest release of OpenCore Legacy Patcher from GitHub. At time of writing, the latest version of OpenCore-Patcher-TUI.app.zip under Releases is 0.3.1 dated towards the end of October 2021.

Unzip and run, by allowing it under System Preferences > Security & Privacy:

  • Select 4. Patcher Settings, followed by 8. Allow OpenCore on native Models. When prompted to Allow OpenCore on all Models, enter y,
  • In the same patcher settings menu, select 5. Miscellaneous Settings, followed by 1. Set ShowPicker When prompted to Show OpenCore Picker by default, enter n,
  • Head back to the main menu by entering q twice,
  • Select 1. Build OpenCore and press Enter to confirm.
  • Then, select 2. Install OpenCore to USB/internal drive, and select your external drive followed by the partition. For me it was 2. disk2, followed by 1. disk2s1.
  • When that is done, quit OpenCore Legacy Patcher.

OpenCore Legacy Patcher creates two folders in the root:

  • a System folder, which contains the boot.efi file and
  • a EFI folder, including Kernel Extensions, which includes FeatureUnlock.kext and specifically the Sidecar Fixup.
##################################
# OpenCore Legacy Patcher v0.3.1 #
# Selected Model: ...            #
##################################

Your model is not supported by this patcher for running unsupported OSes!

If you plan to create the USB for another machine, please select the 
"Change Model" option in the menu.

If you want to run OCLP on a native Mac, please toggle 
"Allow OpenCore on native Models" in settings

1.  Install OpenCore to USB/internal drive
2.  Post-Install Volume Patch
3.  Change Model
4.  Patcher Settings
5.  Credits
Q.  Quit

Please select an option: 4

###########################
# Adjust Patcher Settings #
###########################

1.  Debug Settings
2.  Security Settings
3.  SMBIOS Settings
4.  Boot Volume Settings
5.  Miscellaneous Settings
6.  Dump detected hardware
7.  Allow Accel on Mojave/Catalina: Currently False
8.  Allow OpenCore on native Models:    Currently False
9.  Advanced Settings, for developers only
Q.  Quit

Please select an option: 8

###################################
# Allow OpenCore on native Models #
###################################
Allows natively supported Macs to use OpenCore. Recommended
for users with 3rd Party NVMe SSDs to achieve improved overall
power usage.

Allow OpenCore on all Models(y/n/q): y

###########################
# Adjust Patcher Settings #
###########################

1.  Debug Settings
2.  Security Settings
3.  SMBIOS Settings
4.  Boot Volume Settings
5.  Miscellaneous Settings
6.  Dump detected hardware
7.  Allow Accel on Mojave/Catalina: Currently False
8.  Allow OpenCore on native Models:    Currently True
9.  Advanced Settings, for developers only
Q.  Quit

Please select an option: 5

#################################
# Adjust Miscellaneous Settings #
#################################

1.  Set ShowPicker Mode:    Currently True
2.  Set Wake on WLAN:       Currently False
3.  Set Ivy iMac iGPU:      Currently False
4.  Set TeraScale 2 Accel:  Currently True
5.  Disable Thunderbolt:    Currently False
6.  Set AppleALC Usage:     Currently True
7.  Set Windows GMUX support:   Currently True
8.  Set Software Demux:     Currently False
9.  Disable Battery Throttling: Currently False
Q.  Quit

Please select an option: 1

############################
# Set OpenCore Picker mode #
############################
By default, OpenCore will show its boot picker each time on boot up,
however this can be disabled by default and be shown on command by repeatedly
pressing the "Esc" key

Show OpenCore Picker by default(y/n/q): n

#################################
# Adjust Miscellaneous Settings #
#################################

1.  Set ShowPicker Mode:    Currently False
2.  Set Wake on WLAN:       Currently False
3.  Set Ivy iMac iGPU:      Currently False
4.  Set TeraScale 2 Accel:  Currently True
5.  Disable Thunderbolt:    Currently False
6.  Set AppleALC Usage:     Currently True
7.  Set Windows GMUX support:   Currently True
8.  Set Software Demux:     Currently False
9.  Disable Battery Throttling: Currently False
Q.  Quit

Please select an option: q

###########################
# Adjust Patcher Settings #
###########################

1.  Debug Settings
2.  Security Settings
3.  SMBIOS Settings
4.  Boot Volume Settings
5.  Miscellaneous Settings
6.  Dump detected hardware
7.  Allow Accel on Mojave/Catalina: Currently False
8.  Allow OpenCore on native Models:    Currently True
9.  Advanced Settings, for developers only
Q.  Quit

Please select an option: q

##################################
# OpenCore Legacy Patcher v0.3.1 #
# Selected Model: ...            #
##################################

This model is supported

1.  Build OpenCore
2.  Install OpenCore to USB/internal drive
3.  Post-Install Volume Patch
4.  Change Model
5.  Patcher Settings
6.  Credits
Q.  Quit

Please select an option: 1

Building Configuration on model: ...
Created build folder

- Adding OpenCore v0.7.3 RELEASE
- Adding config.plist for OpenCore
- Adding Lilu.kext 1.5.6
- Adding FeatureUnlock.kext 1.0.3
- Fixing PCIe Storage Controller (1) reporting
- No 3rd Party NVMe drives found
- Found Wireless Device 14E4:43BA
- Adding AirportBrcmFixup.kext 2.1.3
- Setting Wireless Card's Country Code: X3
- Found ARPT device at PciRoot(0x0)/Pci(0x1c,0x2)/Pci(0x0,0x0)
- Adding OpenCanopy GUI
- Hiding OpenCore picker
- Disabling SecureBootModel
- Adding bootmgfw.efi BlessOverride
- Adding EFICheckDisabler.kext 1.0.5
- Cleaning up files

Your OpenCore EFI for ... has been built at:
    /private/var/folders/.../Build-Folder/OpenCore-Build

Press [Enter] to go back.

##################################
# OpenCore Legacy Patcher v0.3.1 #
# Selected Model: ...            #
##################################

This model is supported

1.  Build OpenCore
2.  Install OpenCore to USB/internal drive
3.  Post-Install Volume Patch
4.  Change Model
5.  Patcher Settings
6.  Credits
Q.  Quit

Please select an option: 2

###############
# Select Disk #
###############

Missing disks? Ensure they have an EFI or FAT32 partition.

0.  disk0: APPLE SSD ...
2.  disk2: USB ... (15.4 GB)
B.  Back

Please select the disk you would like to install OpenCore to: 2

####################
# Select Partition #
####################

Missing partitions? Ensure they are formatted as an EFI or FAT32.

* denotes likely candidate.

1.  disk2s1: EFI (209.7 MB) *
B.  Back

Please select the partition you would like to install OpenCore to: 1

####################
# Copying OpenCore #
####################
- Copying OpenCore onto EFI partition
- Adding External USB Drive icon
- Cleaning install location
- Unmounting EFI partition
- OpenCore transfer complete

Press [Enter] to continue.

Regarding to the smallest possible USB drive, diskutil list yielded the following. Maybe 500 MB will suffice?

/dev/disk2 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *15.4 GB    disk2
   1:                        EFI  EFI                    209.7 MB   disk2s1
   2:                  Apple_HFS  OpenCore               15.0 GB    disk2s2

and:

/dev/disk2 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *2.0 GB     disk2
   1:       Microsoft Basic Data OPENCORE                2.0 GB     disk2s1

Reboot to OpenCore EFI

From the system menu, hold down the Option while selecting Restart.

A boot menu will appear, select EFI... your mac will load OpenCore Patcher, and then continue to boot macOS off your internal SSD / HDD normally.

Enable AirPlay Receiver

Head over to System Preferences > Sharing. Make sure the AirPlay Receiver item is checked. I also select Allow AirPlay for: Anyone on the same network.

AirPlay Receiver Sharing service

Screen Mirroring from iOS / iPadOS / macOS

On a separate iPhone, iPad or mac, head over to Screen Mirroring in the Control Center on iOS or macOS - and the device being used as an Airplay Receiver should show up automatically!

Select it and follow the prompts to authenticate. By default the device will mirror its display to the AirPlay Receiver.

When using macOS as the sender, you can use Extend Display instead, and the AirPlay receiver machine will function as a second monitor!

  • From System Preferences > Displays, select right click the AirPlay Receiver and select Extended Display.
  • Make sure to select the correct screen resolution - for retina, select HiDPI:

AirPlay to Receiver as Extended Display

To stop Mirroring on the Receiver, you can move the mouse and hit the large X to close it.

My experience so far...

I couple of issues:

  • Receiver is no longer discovered after disconnecting - I’m not sure but I think after one of the devices went to sleep, the receiver was discovered again.
  • Selecting the HiDPI resolution is not full-screen on the receiver - somehow moving the mouse on the receiver fixed this.

Also, note that Screen Mirroring, by default, sends audio to the Receiver - change this on the sender System Preferences > Sound