I had time to look in to this today...
To patch the DP4 KEXT properly so that the board id checks do not take place rather than having to edit the whitelisted board ids to one that includes that of a targeted model, in the AirPortBrcm4360 binary:
At offset 0xDF41 change 48 8B 35 B8 4D 41 00 to 48 31 F6 90 90 90 90
At offset 0xDF72 change 48 8B 35 E7 4D 41 00 to 48 31 F6 90 90 90 90
This change can be made easily with a hex editor like 0xED.
Note that these offsets will likely change with future releases, I will keep on top of that and post updates as necessary.
For those who are interested, this changes the value that is moved to the rsi register that is subsequently used in a comparison:
mov rsi, qword [ds:__dev0x4331ValidLoadDriverBoardIds]
mov rsi, qword [ds:__dev0x4353ValidLoadDriverBoardIds]
To the following:
xor rsi, rsi
nop
nop
nop
nop
Here, the rsi register is instead zeroed by XORing against itself and nops inserted to pad to the same length.
Hope this helps!
Do the offsets matter? Meaning is there anywhere else in the binary that has 48 8B 35 B8 4D 41 00 for example? It would be great to just have a perl command to patch it like with trim support.