diff --git a/Library/OcAppleKernelLib/KextPatcher.c b/Library/OcAppleKernelLib/KextPatcher.c index 1aa6a87cbfe1f0ab68e6cc81f240b59bc85fc592..4f034fa56dc89a1ba9963c0a64454a1ee97f891c 100644 --- a/Library/OcAppleKernelLib/KextPatcher.c +++ b/Library/OcAppleKernelLib/KextPatcher.c @@ -67,6 +67,7 @@ PatcherInitContextFromBuffer ( // if (!MachoInitializeContext (&Context->MachContext, Buffer, BufferSize, 0)) { + DEBUG ((DEBUG_INFO, "OCAK: Patcher init from buffer %p %u has unsupported mach-o\n", Buffer, BufferSize)); return EFI_INVALID_PARAMETER; } diff --git a/Library/OcAppleKernelLib/PrelinkedContext.c b/Library/OcAppleKernelLib/PrelinkedContext.c index 1d866836bddfb625da0e06e1dd2a993b97cffc99..6288ea7cc277e17a9bde368dfeb17e02fa293bd8 100644 --- a/Library/OcAppleKernelLib/PrelinkedContext.c +++ b/Library/OcAppleKernelLib/PrelinkedContext.c @@ -212,6 +212,13 @@ InternalConnectExternalSymtab ( "__TEXT_EXEC" ); if (Segment == NULL || Segment->VirtualAddress < Segment->FileOffset) { + DEBUG (( + DEBUG_INFO, + "OCAK: KC symtab failed locating inner %Lx %Lx (%d)\n", + Segment != NULL ? Segment->VirtualAddress : 0, + Segment != NULL ? Segment->FileOffset : 0, + Segment != NULL + )); return EFI_INVALID_PARAMETER; } @@ -220,10 +227,22 @@ InternalConnectExternalSymtab ( &Buffer[Segment->FileOffset], (UINT32) (BufferSize - Segment->FileOffset), (UINT32) Segment->FileOffset)) { + DEBUG (( + DEBUG_INFO, + "OCAK: KC symtab failed initialising inner %Lx %x\n", + Segment->FileOffset, + BufferSize + )); return EFI_INVALID_PARAMETER; } if (!MachoInitialiseSymtabsExternal64 (Context, InnerContext)) { + DEBUG (( + DEBUG_INFO, + "OCAK: KC symtab failed getting symtab from inner %Lx %x\n", + Segment->FileOffset, + BufferSize + )); return EFI_INVALID_PARAMETER; } } @@ -559,7 +578,20 @@ PrelinkedInjectPrepare ( SegmentEndOffset = Context->PrelinkedInfoSegment->FileOffset + Context->PrelinkedInfoSegment->FileSize; if (MACHO_ALIGN (SegmentEndOffset) == Context->PrelinkedSize) { + DEBUG (( + DEBUG_INFO, + "OCAK: Reducing prelink size from %X to %X via plist\n", + Context->PrelinkedSize, + (UINT32) MACHO_ALIGN (Context->PrelinkedInfoSegment->FileOffset) + )); Context->PrelinkedSize = (UINT32) MACHO_ALIGN (Context->PrelinkedInfoSegment->FileOffset); + } else { + DEBUG (( + DEBUG_INFO, + "OCAK:Leaving unchanged prelink size %X due to %LX plist\n", + Context->PrelinkedSize, + SegmentEndOffset + )); } Context->PrelinkedInfoSegment->VirtualAddress = 0; diff --git a/Platform/OpenCore/OpenCoreKernel.c b/Platform/OpenCore/OpenCoreKernel.c index a0192fee7ea059d6e8c1e0b1e15710614ce0e98e..c72f0151cac5947be7536eece5ecc286e85e2f97 100644 --- a/Platform/OpenCore/OpenCoreKernel.c +++ b/Platform/OpenCore/OpenCoreKernel.c @@ -320,8 +320,8 @@ OcKernelLoadKextsAndReserve ( DEBUG (( DEBUG_INFO, - "OC: Kext reservation size %u\n", - *ReservedInfoSize + *ReservedExeSize + "OC: Kext reservation size info %X exe %X\n", + *ReservedInfoSize, *ReservedExeSize )); return EFI_SUCCESS; } @@ -694,6 +694,14 @@ OcKernelProcessPrelinked ( )); } + DEBUG (( + DEBUG_INFO, + "OC: Prelink size %u kext offset %u reserved %u\n", + Context.PrelinkedSize, + Context.KextsFileOffset, + ReservedExeSize + )); + ASSERT (Context.PrelinkedSize - Context.KextsFileOffset <= ReservedExeSize); Status = PrelinkedInjectComplete (&Context); @@ -764,8 +772,8 @@ OcKernelFileOpen ( OcKernelLoadKextsAndReserve ( mOcStorage, mOcConfiguration, - &ReservedInfoSize, - &ReservedExeSize + &ReservedExeSize, + &ReservedInfoSize ); LinkedExpansion = KcGetSegmentFixupChainsSize (ReservedExeSize);