embed AppleKeyAggregator

Signed-off-by: SergeySlice <sergey.slice@gmail.com>
This commit is contained in:
SergeySlice 2022-08-18 19:27:04 +03:00
parent 616dbbe140
commit a65f244b2a
7 changed files with 1239 additions and 1386 deletions

View File

@ -775,7 +775,7 @@
#Protocols/AppleImageCodec/AppleImageCodec.inf
#Protocols/AppleUITheme/AppleUITheme.inf
Protocols/HashServiceFix/HashServiceFix.inf
Protocols/AppleKeyAggregator/AppleKeyAggregator.inf
#Protocols/AppleKeyAggregator/AppleKeyAggregator.inf
Protocols/AppleKeyFeeder/AppleKeyFeeder.inf
Protocols/AptioInputFix/AptioInputFix.inf

View File

@ -1,7 +1,7 @@
<?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>
<dict>
<key>ACPI</key>
<dict>
<key>AutoMerge</key>
@ -85,13 +85,9 @@
<key>Disabled</key>
<true/>
<key>Find</key>
<data>
UFhTWAhfQURSAAhfUFJXEgYC
</data>
<data>UFhTWAhfQURSAAhfUFJXEgYC</data>
<key>Replace</key>
<data>
UFhTWAhfQURSAAhfU1VOCgQIX1BSVxIGAg==
</data>
<data>UFhTWAhfQURSAAhfU1VOCgQIX1BSVxIGAg==</data>
</dict>
<dict>
<key>Comment</key>
@ -99,13 +95,9 @@
<key>Disabled</key>
<true/>
<key>Find</key>
<data>
R0ZYMA==
</data>
<data>R0ZYMA==</data>
<key>Replace</key>
<data>
SUdQVQ==
</data>
<data>SUdQVQ==</data>
</dict>
<dict>
<key>Comment</key>
@ -113,13 +105,9 @@
<key>Disabled</key>
<true/>
<key>Find</key>
<data>
SERFRg==
</data>
<data>SERFRg==</data>
<key>Replace</key>
<data>
QVpBTA==
</data>
<data>QVpBTA==</data>
</dict>
<dict>
<key>Comment</key>
@ -127,13 +115,9 @@
<key>Disabled</key>
<false/>
<key>Find</key>
<data>
X0RTTQ==
</data>
<data>X0RTTQ==</data>
<key>Replace</key>
<data>
WkRTTQ==
</data>
<data>WkRTTQ==</data>
</dict>
<dict>
<key>Comment</key>
@ -141,15 +125,13 @@
<key>Disabled</key>
<false/>
<key>Find</key>
<data>
SEVDSQ==
</data>
<data>SEVDSQ==</data>
<key>Replace</key>
<data>
SU1FSQ==
</data>
<data>SU1FSQ==</data>
<key>Skip</key>
<integer>0</integer>
<key>Count</key>
<integer>0</integer>
</dict>
</array>
<key>ReuseFFFF</key>
@ -392,59 +374,37 @@
<key>PciRoot(0x0)/Pci(0x14,0x0)</key>
<dict>
<key>AAPL,clock-id</key>
<data>
AA==
</data>
<data>AA==</data>
<key>AAPL,current-available</key>
<data>
sAQ=
</data>
<data>sAQ=</data>
<key>AAPL,current-extra</key>
<data>
vAI=
</data>
<data>vAI=</data>
<key>AAPL,current-in-sleep</key>
<data>
6AM=
</data>
<data>6AM=</data>
<key>Comment</key>
<string>This is USB3.0</string>
<key>built-in</key>
<data>
AA==
</data>
<data>AA==</data>
<key>device_type</key>
<string>XHCI</string>
</dict>
<key>PciRoot(0x0)/Pci(0x19,0x0)</key>
<dict>
<key>built-in</key>
<data>
AQ==
</data>
<data>AQ==</data>
</dict>
<key>PciRoot(0x0)/Pci(0x1a,0x0)</key>
<dict>
<key>AAPL,clock-id</key>
<data>
AQ==
</data>
<data>AQ==</data>
<key>AAPL,current-available</key>
<data>
sAQ=
</data>
<data>sAQ=</data>
<key>AAPL,current-extra</key>
<data>
vAI=
</data>
<data>vAI=</data>
<key>AAPL,current-in-sleep</key>
<data>
6AM=
</data>
<data>6AM=</data>
<key>built-in</key>
<data>
AA==
</data>
<data>AA==</data>
<key>device_type</key>
<string>EHCI</string>
</dict>
@ -462,9 +422,7 @@
<key>name</key>
<string>AirPort Extreme</string>
<key>subsystem-vendor-id</key>
<data>
axAAAA==
</data>
<data>axAAAA==</data>
</dict>
<key>PciRoot(0x0)/Pci(0x1c,0x5)/Pci(0x0,0x0)</key>
<dict>
@ -477,93 +435,54 @@
<key>name</key>
<string>AirPort Extreme</string>
<key>subsystem-vendor-id</key>
<data>
axAAAA==
</data>
<data>axAAAA==</data>
</dict>
<key>PciRoot(0x0)/Pci(0x1d,0x0)</key>
<dict>
<key>AAPL,clock-id</key>
<data>
Ag==
</data>
<data>Ag==</data>
<key>AAPL,current-available</key>
<data>
sAQ=
</data>
<data>sAQ=</data>
<key>AAPL,current-extra</key>
<data>
vAI=
</data>
<data>vAI=</data>
<key>AAPL,current-in-sleep</key>
<data>
6AM=
</data>
<data>6AM=</data>
<key>built-in</key>
<data>
AA==
</data>
<data>AA==</data>
<key>device_type</key>
<string>EHCI</string>
</dict>
<key>PciRoot(0x0)/Pci(0x2,0x0)</key>
<dict>
<key>#AAPL00,override-no-connect</key>
<data>
AP///////wANr2kUAAAAABYWAQSgHxF4AtFFm1lXjisj
UFQAAAABAQEBAQEBAQEBAQEBAQEBEhtWclAADDAQZCYA
Na4QAAAaDBJWclAADDAQIiYANa4QAAAaAAAA/gA3SlJU
OYAxNDBCR0UKAAAAAAAAQTGUAAAAAAEBCiAgAMU=
</data>
<data>AP///////wANr2kUAAAAABYWAQSgHxF4AtFFm1lXjisjUFQAAAABAQEBAQEBAQEBAQEBAQEBEhtWclAADDAQZCYANa4QAAAaDBJWclAADDAQIiYANa4QAAAaAAAA/gA3SlJUOYAxNDBCR0UKAAAAAAAAQTGUAAAAAAEBCiAgAMU=</data>
<key>@0,backlight-control</key>
<data>
AQAAAA==
</data>
<data>AQAAAA==</data>
<key>AAPL,HasLid</key>
<data>
AQAAAA==
</data>
<data>AQAAAA==</data>
<key>AAPL,HasPanel</key>
<data>
AQAAAA==
</data>
<data>AQAAAA==</data>
<key>AAPL,backlight-control</key>
<data>
AQAAAA==
</data>
<data>AQAAAA==</data>
<key>AAPL,ig-platform-id</key>
<data>
AwBmAQ==
</data>
<data>AwBmAQ==</data>
<key>class-code</key>
<data>
AAADAA==
</data>
<data>AAADAA==</data>
<key>device-id</key>
<data>
ZgEAAA==
</data>
<data>ZgEAAA==</data>
<key>graphic-options</key>
<data>
DAAAAA==
</data>
<data>DAAAAA==</data>
<key>model</key>
<string>Intel HD Graphics 4000</string>
<key>subsystem-vendor-id</key>
<data>
axAAAA==
</data>
<data>axAAAA==</data>
<key>vendor-id</key>
<data>
hoAAAA==
</data>
<data>hoAAAA==</data>
</dict>
<key>SecondaryGPU</key>
<dict>
<key>device-id</key>
<data>
/////w==
</data>
<data>/////w==</data>
</dict>
</dict>
<key>SetIntelBacklight?</key>
@ -751,12 +670,7 @@
<key>EDID</key>
<dict>
<key>Custom?</key>
<data>
AP///////wAGECGSAAAAAAASAQOAIRV4CunVmVlTjigmUFQAAAAB
AQEBAQEBAQEBAQEBAQEB3iGgcFCEHzAgIFYAS88QAAAY3iGgcFCE
HzAgIFYAS88QAAAAAAAA/gBXNjU3RwAxNTRXUDEKAAAA/gAjMz1I
ZYSq/wIBCiAgAJo=
</data>
<data>AP///////wAGECGSAAAAAAASAQOAIRV4CunVmVlTjigmUFQAAAABAQEBAQEBAQEBAQEBAQEB3iGgcFCEHzAgIFYAS88QAAAY3iGgcFCEHzAgIFYAS88QAAAAAAAA/gBXNjU3RwAxNTRXUDEKAAAA/gAjMz1IZYSq/wIBCiAgAJo=</data>
<key>HorizontalSyncPulseWidth?</key>
<string>0x11</string>
<key>Inject?</key>
@ -795,13 +709,9 @@
<array>
<dict>
<key>Find</key>
<data>
gAeoAqAF
</data>
<data>gAeoAqAF</data>
<key>Replace</key>
<data>
gAeoAjgE
</data>
<data>gAeoAjgE</data>
</dict>
</array>
<key>RadeonDeInit?</key>
@ -835,15 +745,11 @@
<key>Disabled</key>
<true/>
<key>Find</key>
<data>
RXh0ZXJuYWw=
</data>
<data>RXh0ZXJuYWw=</data>
<key>MatchOS</key>
<string>All</string>
<key>Replace</key>
<data>
SW50ZXJuYWw=
</data>
<data>SW50ZXJuYWw=</data>
</dict>
</array>
<key>Debug</key>
@ -871,23 +777,15 @@
<key>Disabled</key>
<true/>
<key>Find</key>
<data>
igKEwHRC
</data>
<data>igKEwHRC</data>
<key>MaskFind</key>
<data>
////////
</data>
<data>////////</data>
<key>MaskReplace</key>
<data>
AAAAAP8A
</data>
<data>AAAAAP8A</data>
<key>MatchOS</key>
<string>10.14</string>
<key>Replace</key>
<data>
igKEwOtC
</data>
<data>igKEwOtC</data>
</dict>
<dict>
<key>Comment</key>
@ -895,15 +793,11 @@
<key>Disabled</key>
<true/>
<key>Find</key>
<data>
igKEwHRE
</data>
<data>igKEwHRE</data>
<key>MatchOS</key>
<string>10.13</string>
<key>Replace</key>
<data>
igKEwOtE
</data>
<data>igKEwOtE</data>
</dict>
<dict>
<key>Comment</key>
@ -911,33 +805,21 @@
<key>Disabled</key>
<true/>
<key>Find</key>
<data>
6AAA//+DAAAAAAAA
</data>
<data>6AAA//+DAAAAAAAA</data>
<key>MaskFind</key>
<data>
/wAA////AAAAAP//
</data>
<data>/wAA////AAAAAP//</data>
<key>MaskReplace</key>
<data>
/wAA////////////
</data>
<data>/wAA////////////</data>
<key>MaskStart</key>
<data>
/////wA=
</data>
<data>/////wA=</data>
<key>MatchOS</key>
<string>All</string>
<key>RangeFind</key>
<integer>200</integer>
<key>Replace</key>
<data>
6AAA//8xwJCQkJCQ
</data>
<data>6AAA//8xwJCQkJCQ</data>
<key>StartPattern</key>
<data>
ACnHeAAx241H+oM=
</data>
<data>ACnHeAAx241H+oM=</data>
</dict>
<dict>
<key>Comment</key>
@ -945,9 +827,7 @@
<key>Disabled</key>
<true/>
<key>Find</key>
<data>
D8fxc/sh8TnRc/WJyUiLlM3Q/f//
</data>
<data>D8fxc/sh8TnRc/WJyUiLlM3Q/f//</data>
<key>MatchOS</key>
<string>12.x</string>
<key>Procedure</key>
@ -955,9 +835,7 @@
<key>RangeFind</key>
<integer>3900</integer>
<key>Replace</key>
<data>
McmQkJAh8TnRc/WJyUiLlM3Q/f//
</data>
<data>McmQkJAh8TnRc/WJyUiLlM3Q/f//</data>
</dict>
<dict>
<key>Comment</key>
@ -965,9 +843,7 @@
<key>Disabled</key>
<true/>
<key>Find</key>
<data>
D8fyc/uD4g+D+gd38w+3NEE=
</data>
<data>D8fyc/uD4g+D+gd38w+3NEE=</data>
<key>MatchOS</key>
<string>12.x</string>
<key>Procedure</key>
@ -975,9 +851,7 @@
<key>RangeFind</key>
<integer>10100</integer>
<key>Replace</key>
<data>
MdKQkJCD4g+D+gd38w+3NEE=
</data>
<data>MdKQkJCD4g+D+gd38w+3NEE=</data>
</dict>
<dict>
<key>Comment</key>
@ -985,19 +859,13 @@
<key>Disabled</key>
<false/>
<key>Find</key>
<data>
SA/H8HP6
</data>
<data>SA/H8HP6</data>
<key>MaskFind</key>
<data>
/v//8P//
</data>
<data>/v//8P//</data>
<key>MatchOS</key>
<string>12.x</string>
<key>Replace</key>
<data>
kJCQkJCQ
</data>
<data>kJCQkJCQ</data>
</dict>
</array>
<key>KernelXCPM</key>
@ -1008,19 +876,13 @@
<key>Disabled</key>
<true/>
<key>Find</key>
<data>
SGVhZHBob25lcwA=
</data>
<data>SGVhZHBob25lcwA=</data>
<key>MaskReplace</key>
<data>
/////wAAAAAAAAA=
</data>
<data>/////wAAAAAAAAA=</data>
<key>Name</key>
<string>VoodooHDA</string>
<key>Replace</key>
<data>
VGVsZXBob25lcwA=
</data>
<data>VGVsZXBob25lcwA=</data>
</dict>
<dict>
<key>Comment</key>
@ -1042,15 +904,11 @@
<key>Disabled</key>
<true/>
<key>Find</key>
<data>
RXh0ZXJuYWw=
</data>
<data>RXh0ZXJuYWw=</data>
<key>Name</key>
<string>AppleAHCIPort</string>
<key>Replace</key>
<data>
SW50ZXJuYWw=
</data>
<data>SW50ZXJuYWw=</data>
</dict>
<dict>
<key>Comment</key>
@ -1058,15 +916,11 @@
<key>Disabled</key>
<true/>
<key>Find</key>
<data>
QVBQTEUgU1NEAA==
</data>
<data>QVBQTEUgU1NEAA==</data>
<key>Name</key>
<string>IOAHCIBlockStorage</string>
<key>Replace</key>
<data>
AAAAAAAAAAAAAA==
</data>
<data>AAAAAAAAAAAAAA==</data>
</dict>
<dict>
<key>Comment</key>
@ -1074,37 +928,27 @@
<key>Disabled</key>
<true/>
<key>Find</key>
<data>
AAQAAAQDAAAAAQAAIQMCBAQAAAAUAgAAAAEAAAAABAMQ
AAAAEAAAAAABAAAAAAAB
</data>
<data>AAQAAAQDAAAAAQAAIQMCBAQAAAAUAgAAAAEAAAAABAMQAAAAEAAAAAABAAAAAAAB</data>
<key>MatchOS</key>
<string>10.9,10.10,10.11</string>
<key>Name</key>
<string>AMD6000Controller</string>
<key>Replace</key>
<data>
BAAAABQCAAAAAQAAAAAEBAAEAAAEAwAAAAEAABECAQUA
AAAAAAAAAAAAAAAAAAAA
</data>
<data>BAAAABQCAAAAAQAAAAAEBAAEAAAEAwAAAAEAABECAQUAAAAAAAAAAAAAAAAAAAAA</data>
</dict>
<dict>
<key>Comment</key>
<string>ATI name HD xxxx -&gt; HD6450</string>
<string>ATI name HD xxxx -> HD6450</string>
<key>Disabled</key>
<true/>
<key>Find</key>
<data>
SEQgNnh4eA==
</data>
<data>SEQgNnh4eA==</data>
<key>MatchOS</key>
<string>10.12,10.13</string>
<key>Name</key>
<string>AMD6000Controller</string>
<key>Replace</key>
<data>
SEQgNjQ1MA==
</data>
<data>SEQgNjQ1MA==</data>
</dict>
<dict>
<key>Comment</key>
@ -1112,13 +956,9 @@
<key>Disabled</key>
<true/>
<key>Find</key>
<data>
VUiJ
</data>
<data>VUiJ</data>
<key>MaskFind</key>
<data>
AAAA
</data>
<data>AAAA</data>
<key>Name</key>
<string>com.apple.kext.AMDSupport</string>
<key>Procedure</key>
@ -1126,9 +966,7 @@
<key>RangeFind</key>
<integer>10</integer>
<key>Replace</key>
<data>
sAHD
</data>
<data>sAHD</data>
</dict>
</array>
<key>PanicNoKextDump</key>
@ -1389,5 +1227,5 @@
<key>NvidiaWeb?</key>
<false/>
</dict>
</dict>
</dict>
</plist>

@ -1 +1 @@
Subproject commit ac03fdb3174877a17da5b3834104bd5034eea0c8
Subproject commit c3b81619a9dd9e1cfcf7b85f2f3107c6517840ea

View File

@ -17,9 +17,6 @@
#include <Library/DebugLib.h>
#include <Library/UefiBootServicesTableLib.h>
#include <Protocol/AppleKeyState.h>
#include <Protocol/AppleKeyMapDatabase.h>
#include <Protocol/AppleEvent.h>
#include "AppleKeyAggregator.h"
extern EFI_GUID gAppleEventProtocolGuid;
@ -380,12 +377,16 @@ SearchKeyStroke (APPLE_KEY_STATE_PROTOCOL* This,
@retval EFI_SUCCESS The entry point is executed successfully.
@retval EFI_ALREADY_STARTED The protocol has already been installed.
**/
#if SEP_AGGREG
EFI_STATUS
EFIAPI
AggregatorEntryPoint (
IN EFI_HANDLE ImageHandle,
IN EFI_SYSTEM_TABLE *SystemTable
) // start
#else
EFI_STATUS InstallAggregator()
#endif
{
EFI_STATUS Status;
@ -432,11 +433,7 @@ AggregatorEntryPoint (
&mAppleEventProtocol,
NULL
);
/*
if (!EFI_ERROR(Status)) {
Status = gBS->InstallProtocolInterface(ImageHandle, &gAppleEventProtocolGuid, EFI_NATIVE_INTERFACE, &mAppleEventProtocol);
}
*/
}
return Status;

View File

@ -9,6 +9,11 @@
#ifndef _AppleKeyMapAggregator_h
#define _AppleKeyMapAggregator_h
#include <Protocol/AppleKeyState.h>
#include <Protocol/AppleKeyMapDatabase.h>
#include <Protocol/AppleEvent.h>
#define APPLE_KEY_MAP_PROTOCOLS_REVISION 0x010000
#define APPLE_KEY_MAP_AGGREGATOR_SIGNATURE SIGNATURE_32 ('K', 'e', 'y', 'A')
@ -76,6 +81,6 @@ typedef struct {
APPLE_KEY_STATE_PROTOCOL AggregatorProtocol; ///<0x50 size=8*3
} APPLE_KEY_MAP_AGGREGATOR; //size=0x68
EFI_STATUS InstallAggregator();
#endif

View File

@ -29,6 +29,9 @@
#include <Protocol/AppleSMC.h>
#include <Protocol/AppleSystemInfo.h>
#include <Protocol/AppleImageCodecProtocol.h>
extern "C" {
#include "../../Protocols/AppleKeyAggregator/AppleKeyAggregator.h"
}
#ifndef DEBUG_ALL
#define DEBUG_PRO 1
@ -434,6 +437,12 @@ SetPrivateVarProto(void)
DBG("AppleImageCodec: error installing protocol, Status = %s\n", efiStrError(Status));
}
Status = InstallAggregator();
if (EFI_ERROR(Status)) {
DBG("AppleKeyAggregator: error installing protocol, Status = %s\n", efiStrError(Status));
}
//obligatory protocol
Status = gBS->InstallProtocolInterface (&gImageHandle,
&gEfiDevicePathPropertyDatabaseProtocolGuid,

View File

@ -397,6 +397,8 @@
Settings/SelfOem.h
../Protocols/FirmwareVolume/FirmwareVolume.c
../Protocols/SMCHelper/SMCHelper.c
../Protocols/AppleKeyAggregator/AppleKeyAggregator.h
../Protocols/AppleKeyAggregator/AppleKeyAggregator.c
[Sources.IA32]
PlatformIA32/ftol.asm | MSFT
@ -536,6 +538,8 @@
gAppleSMCProtocolGuid ## PRODUCES and CONSUMES
gAppleSMCStateProtocolGuid ## PRODUCES and CONSUMES
gAppleSystemInfoProtocolGuid
gAppleKeyStateProtocolGuid
gAppleKeyMapDatabaseProtocolGuid
gFSInjectProtocolGuid
gMsgLogProtocolGuid