About EFI Device Properties - RevoGirl/RevoBoot GitHub Wiki
Introduction
We are planning to change the EFI injection process in a way that will blow people away – onboard audio chips and graphics card should "just work" the Apple way. Without you ever having to think about it. Not even when you swap the graphics card or replace your motherboard, but until it works like that... this is what we have to do/use:
RevoBoot/i386/config/EFI/example.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- GPU properties -->
<key>PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)</key>
<dict>
<key>@0,AAPL,boot-display</key>
<data>
AQAAAA==
</data>
<key>@0,name</key>
<data>
QVRZLER1Y2t3ZWVk
</data>
<key>@1,name</key>
<data>
QVRZLER1Y2t3ZWVk
</data>
<key>@2,name</key>
<data>
QVRZLER1Y2t3ZWVk
</data>
<key>@3,name</key>
<data>
QVRZLER1Y2t3ZWVk
</data>
<key>model</key>
<data>
QU1EIFJhZGVvbiBIRCA2ODUw
</data>
</dict>
<!-- HDEF 892 properties -->
<key>PciRoot(0x0)/Pci(0x1b,0x0)</key>
<dict>
<key>PinConfigurations</key>
<data>
AA==
</data>
<key>layout-id</key>
<data>
fAMAAA==
</data>
<key>subsystem-id</key>
<data>
oAAAAA==
</data>
<key>subsystem-vendor-id</key>
<data>
axAAAA==
</data>
</dict>
<!-- FRWR properties -->
<key>PciRoot(0x0)/Pci(0x1c,0x4)/Pci(0x0,0x0)</key>
<dict>
<key>fw-hub</key>
<data>
AAAAAA==
</data>
</dict>
<!-- LAN properties -->
<key>PciRoot(0x0)/Pci(0x1c,0x5)/Pci(0x0,0x0)</key>
<dict>
<key>built-in</key>
<data>
AQ==
</data>
</dict>
RevoBoot/i386/config/EFI/data.h example snippet:
#define STATIC_EFI_DEVICE_PROPERTIES \
0x5e, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, \
0x01, 0x00, 0x00, 0x00, 0x02, 0x01, 0x0c, 0x00, 0xd0, 0x41, 0x03, 0x0a, 0x00, 0x00, 0x00, 0x00, \
0x01, 0x01, 0x06, 0x00, 0x05, 0x1c, 0x01, 0x01, 0x06, 0x00, 0x00, 0x00, 0x7f, 0xff, 0x04, 0x00, \
0x16, 0x00, 0x00, 0x00, 0x62, 0x00, 0x75, 0x00, 0x69, 0x00, 0x6c, 0x00, 0x74, 0x00, 0x2d, 0x00, \
0x69, 0x00, 0x6e, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x10, 0x01, 0x00, 0x00, 0x06, \
0x00, 0x00, 0x00, 0x02, 0x01, 0x0c, 0x00, 0xd0, 0x41, 0x03, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x01, \
0x01, 0x06, 0x00, 0x00, 0x01, 0x01, 0x01, 0x06, 0x00, 0x00, 0x00, 0x7f, 0xff, 0x04, 0x00, 0x10, \
0x00, 0x00, 0x00, 0x6d, 0x00, 0x6f, 0x00, 0x64, 0x00, 0x65, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x16, \
0x00, 0x00, 0x00, 0x41, 0x4d, 0x44, 0x20, 0x52, 0x61, 0x64, 0x65, 0x6f, 0x6e, 0x20, 0x48, 0x44, \
0x20, 0x36, 0x38, 0x35, 0x30, 0x2e, 0x00, 0x00, 0x00, 0x40, 0x00, 0x30, 0x00, 0x2c, 0x00, 0x41, \
0x00, 0x41, 0x00, 0x50, 0x00, 0x4c, 0x00, 0x2c, 0x00, 0x62, 0x00, 0x6f, 0x00, 0x6f, 0x00, 0x74, \
0x00, 0x2d, 0x00, 0x64, 0x00, 0x69, 0x00, 0x73, 0x00, 0x70, 0x00, 0x6c, 0x00, 0x61, 0x00, 0x79, \
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x40, \
0x00, 0x30, 0x00, 0x2c, 0x00, 0x6e, 0x00, 0x61, 0x00, 0x6d, 0x00, 0x65, 0x00, 0x00, 0x00, 0x10, \
0x00, 0x00, 0x00, 0x41, 0x54, 0x59, 0x2c, 0x44, 0x75, 0x63, 0x6b, 0x77, 0x65, 0x65, 0x64, 0x14, \
0x00, 0x00, 0x00, 0x40, 0x00, 0x33, 0x00, 0x2c, 0x00, 0x6e, 0x00, 0x61, 0x00, 0x6d, 0x00, 0x65, \
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x41, 0x54, 0x59, 0x2c, 0x44, 0x75, 0x63, 0x6b, 0x77, \
0x65, 0x65, 0x64, 0x14, 0x00, 0x00, 0x00, 0x40, 0x00, 0x32, 0x00, 0x2c, 0x00, 0x6e, 0x00, 0x61, \
0x00, 0x6d, 0x00, 0x65, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x41, 0x54, 0x59, 0x2c, 0x44, \
0x75, 0x63, 0x6b, 0x77, 0x65, 0x65, 0x64, 0x14, 0x00, 0x00, 0x00, 0x40, 0x00, 0x31, 0x00, 0x2c, \
0x00, 0x6e, 0x00, 0x61, 0x00, 0x6d, 0x00, 0x65, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x41, \
0x54, 0x59, 0x2c, 0x44, 0x75, 0x63, 0x6b, 0x77, 0x65, 0x65, 0x64, 0x3e, 0x00, 0x00, 0x00, 0x01, \
0x00, 0x00, 0x00, 0x02, 0x01, 0x0c, 0x00, 0xd0, 0x41, 0x03, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x01, \
0x01, 0x06, 0x00, 0x04, 0x1c, 0x01, 0x01, 0x06, 0x00, 0x00, 0x00, 0x7f, 0xff, 0x04, 0x00, 0x12, \
0x00, 0x00, 0x00, 0x66, 0x00, 0x77, 0x00, 0x2d, 0x00, 0x68, 0x00, 0x75, 0x00, 0x62, 0x00, 0x00, \
0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, \
0x00, 0x02, 0x01, 0x0c, 0x00, 0xd0, 0x41, 0x03, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x06, \
0x00, 0x00, 0x1b, 0x7f, 0xff, 0x04, 0x00, 0x28, 0x00, 0x00, 0x00, 0x50, 0x00, 0x69, 0x00, 0x6e, \
0x00, 0x43, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x66, 0x00, 0x69, 0x00, 0x67, 0x00, 0x75, 0x00, 0x72, \
0x00, 0x61, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x73, 0x00, 0x00, 0x00, 0x05, \
0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x61, 0x00, 0x79, 0x00, 0x6f, 0x00, \
0x75, 0x00, 0x74, 0x00, 0x2d, 0x00, 0x69, 0x00, 0x64, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, \
0x7c, 0x03, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x73, 0x00, 0x75, 0x00, 0x62, 0x00, 0x73, 0x00, \
0x79, 0x00, 0x73, 0x00, 0x74, 0x00, 0x65, 0x00, 0x6d, 0x00, 0x2d, 0x00, 0x76, 0x00, 0x65, 0x00, \
0x6e, 0x00, 0x64, 0x00, 0x6f, 0x00, 0x72, 0x00, 0x2d, 0x00, 0x69, 0x00, 0x64, 0x00, 0x00, 0x00, \
0x08, 0x00, 0x00, 0x00, 0x6b, 0x10, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x73, 0x00, 0x75, 0x00, \
0x62, 0x00, 0x73, 0x00, 0x79, 0x00, 0x73, 0x00, 0x74, 0x00, 0x65, 0x00, 0x6d, 0x00, 0x2d, 0x00, \
0x69, 0x00, 0x64, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00
Handy Scripts
RevoBoot/i386/config/EFI/xml2bin.sh
./gfxutil -i xml -o bin example.xml example.bin
RevoBoot/i386/config/EFI/bin2xml.sh
./gfxutil -i bin -o xml example.bin example.xml
RevoBoot/i386/config/EFI/create.sh
xxd -i -c 16 ./Desktop/example.bin | tail -n +2 | sed 'N;$!P;$!D;$d' | sed 's/$/ \\/' | sed '$s/.$//'