exclude unused old methods for kext inject

Signed-off-by: SergeySlice <sergey.slice@gmail.com>
This commit is contained in:
SergeySlice 2022-03-06 09:42:49 +03:00
parent bf067e514c
commit af0fb92a75
3 changed files with 26 additions and 30 deletions

View File

@ -203,6 +203,7 @@ XString8 LOADER_ENTRY::getKextExecPath(const XStringW& dirPath, const SIDELOAD_
//it seems no more used? Or???
// FileName is better as a XString8 instead of XStringW because _BooterKextFileInfo will need an utf8.
/*
EFI_STATUS LOADER_ENTRY::LoadKext(const EFI_FILE *RootDir, const XString8& FileName, IN cpu_type_t archCpuType, IN OUT void *kext_v)
{
EFI_STATUS Status;
@ -309,7 +310,7 @@ EFI_STATUS LOADER_ENTRY::AddKext(const EFI_FILE *RootDir, const XString8& FileNa
return Status;
}
*/
UINT32 GetListCount(LIST_ENTRY const* List)
{
LIST_ENTRY *Link;
@ -337,7 +338,7 @@ UINT32 GetListCount(LIST_ENTRY const* List)
// }
// return kextsSize;
//}
/*
void LOADER_ENTRY::LoadPlugInKexts(const EFI_FILE *RootDir, const XString8& DirName, IN cpu_type_t archCpuType, IN XBool Force)
{
REFIT_DIR_ITER PlugInIter;
@ -357,7 +358,7 @@ void LOADER_ENTRY::LoadPlugInKexts(const EFI_FILE *RootDir, const XString8& DirN
}
DirIterClose(&PlugInIter);
}
*/
//void LOADER_ENTRY::AddKexts(const XStringW& SrcDir, const XStringW& Path, cpu_type_t archCpuType)
//{
// XStringW FileName;
@ -447,11 +448,12 @@ void LOADER_ENTRY::AddKextsFromDirInArray(const XString8& SrcDir, cpu_type_t arc
}
void LOADER_ENTRY::AddKextsInArray(XObjArray<SIDELOAD_KEXT>* kextArray)
{
XStringW SrcDir;
REFIT_DIR_ITER PlugInIter;
EFI_FILE_INFO *PlugInFile;
// REFIT_DIR_ITER PlugInIter;
// EFI_FILE_INFO *PlugInFile;
// XString8 FileName;
// XString8 PlugIns;
// CONST CHAR16 *Arch = NULL;
@ -487,6 +489,7 @@ void LOADER_ENTRY::AddKextsInArray(XObjArray<SIDELOAD_KEXT>* kextArray)
}
// Force kexts to load
/*
if ( KernelAndKextPatches.ForceKextsToLoad.notEmpty() ) {
for (size_t i = 0; i < KernelAndKextPatches.ForceKextsToLoad.size(); ++i) {
MsgLog(" Force kext: %ls\n", KernelAndKextPatches.ForceKextsToLoad[i].wc_str());
@ -502,39 +505,22 @@ void LOADER_ENTRY::AddKextsInArray(XObjArray<SIDELOAD_KEXT>* kextArray)
continue; // skip this
XString8 FileName = S8Printf("%ls\\%ls", p, PlugInFile->FileName);
MsgLog(" Force kext: %s\n", FileName.c_str());
AddKext( Volume->RootDir, FileName, archCpuType);
AddKext( Volume->RootDir, FileName, archCpuType, kextForceArray);
XString8 PlugIns = S8Printf("%s\\Contents\\PlugIns", FileName.c_str());
LoadPlugInKexts(Volume->RootDir, PlugIns, archCpuType, true);
}
DirIterClose(&PlugInIter);
} else {
XString8 Path = S8Printf("%ls", p);
AddKext( Volume->RootDir, Path, archCpuType);
AddKext( Volume->RootDir, Path, archCpuType, kextForceArray);
XString8 PlugIns = S8Printf("%s\\Contents\\PlugIns", Path.c_str());
LoadPlugInKexts(Volume->RootDir, PlugIns, archCpuType, true);
}
}
}
}
*/
// XStringW UniOSVersion;
// UniOSVersion = macOSVersion;
// DBG("UniOSVersion == %ls\n", UniOSVersion.wc_str());
//
// XStringW UniShortOSVersion;
//// XString8 ShortOSVersion;
// if ( macOSVersion < MacOsVersion("10.10"_XS8)) {
// // macOSVersion that are earlier than 10.10(form: 10.x.y)
//// ShortOSVersion.strncpy(macOSVersion.c_str(), 4);
// UniShortOSVersion.strncpy(macOSVersion.c_str(), 4);
// } else {
//// ShortOSVersion.strncpy(macOSVersion.c_str(), 5);
// UniShortOSVersion.strncpy(macOSVersion.c_str(), 5);
// }
//// DBG("ShortOSVersion == %s\n", ShortOSVersion.c_str());
// DBG("UniShortOSVersion == %ls\n", UniShortOSVersion.wc_str());
// syscl - allow specific load inject kext
// Clover/Kexts/Other is for general injection thus we need to scan both Other and macOSVersion folder
SrcDir = GetOtherKextsDir(true);
if ( SrcDir.notEmpty() ) {
@ -797,6 +783,7 @@ void LOADER_ENTRY::patch_mkext_v1(UINT8 *drvPtr)
////////////////////
// OnExitBootServices
////////////////////
#if 0
EFI_STATUS LOADER_ENTRY::InjectKexts(IN UINT32 deviceTreeP, IN UINT32* deviceTreeLength)
{
UINT8 *dtEntry = (UINT8*)(UINTN) deviceTreeP;
@ -940,7 +927,7 @@ EFI_STATUS LOADER_ENTRY::InjectKexts(IN UINT32 deviceTreeP, IN UINT32* deviceTre
return EFI_SUCCESS;
}
#endif
////////////////////////////////////
//
// KernelBooterExtensionsPatch to load extra kexts besides kernelcache

View File

@ -445,17 +445,18 @@ class REFIT_ABSTRACT_MENU_ENTRY
void applyKernPatch(const UINT8 *find, UINTN size, const UINT8 *repl, const CHAR8 *comment);
EFI_STATUS SetFSInjection();
EFI_STATUS InjectKexts(IN UINT32 deviceTreeP, IN UINT32 *deviceTreeLength);
// EFI_STATUS InjectKexts(IN UINT32 deviceTreeP, IN UINT32 *deviceTreeLength);
// EFI_STATUS LoadKexts();
// int is_mkext_v1(UINT8* drvPtr);
// void patch_mkext_v1(UINT8 *drvPtr); //not used
EFI_STATUS LoadKext(const EFI_FILE *RootDir, const XString8& FileName, IN cpu_type_t archCpuType, IN OUT void *kext);
EFI_STATUS AddKext(const EFI_FILE *RootDir, const XString8& FileName, IN cpu_type_t archCpuType);
void LoadPlugInKexts(const EFI_FILE *RootDir, const XString8& DirName, IN cpu_type_t archCpuType, IN XBool Force);
// EFI_STATUS LoadKext(const EFI_FILE *RootDir, const XString8& FileName, IN cpu_type_t archCpuType, IN OUT void *kext);
// EFI_STATUS AddKext(const EFI_FILE *RootDir, const XString8& FileName, IN cpu_type_t archCpuType);
// void LoadPlugInKexts(const EFI_FILE *RootDir, const XString8& DirName, IN cpu_type_t archCpuType, IN XBool Force);
// void AddKexts(const XStringW& SrcDir, const XStringW& Path, cpu_type_t archCpuType);
void AddKextsFromDirInArray(const XString8& SrcDir, cpu_type_t archCpuType, XObjArray<SIDELOAD_KEXT>* kextArray);
void AddKextsInArray(XObjArray<SIDELOAD_KEXT>* kextArray);
void AddForceKextsInArray(XObjArray<SIDELOAD_KEXT>* kextArray);
void KextPatcherRegisterKexts(void *FSInject, void *ForceLoadKexts);
void KextPatcherStart();
void PatchPrelinkedKexts();

View File

@ -1200,6 +1200,14 @@ void LOADER_ENTRY::StartLoader()
mOpenCoreConfiguration.Kernel.Force.Values[kextIdx]->PlistDataSize = 0;
// XString8 execpath = getKextExecPath(dirPath, KextEntry, dict, NoContents);
// for kext IOAudioFamily BundlePath = System\Library\Extensions\IOAudioFamily.kext
// ExecutablePath = Contents/MacOS/IOAudioFamily
if ( FileExists(Volume->VoduleDir, bundlePath) ) {
OC_STRING_ASSIGN(mOpenCoreConfiguration.Kernel.Add.Values[kextIdx]->BundlePath, S8Printf("%ls",forceKext.wc_str()).c_str());
}else{
DBG("Cannot find kext bundlePath at '%s'\n", S8Printf("%ls",forceKext.wc_str()).c_str());
}
if (forceKext.notEmpty()) {
OC_STRING_ASSIGN(mOpenCoreConfiguration.Kernel.Force.Values[kextIdx]->ExecutablePath, S8Printf("%ls",forceKext.wc_str()).c_str());
DBG("assign executable as '%s'\n", mOpenCoreConfiguration.Kernel.Force.Values[kextIdx]->ExecutablePath.Value);