![]() Note that this is still not perfect - Ghidra still doesn’t fixup pointers or read symbols. I created a script to fix up the kext collection so that Ghidra can load it. Unfortunately, Ghidra isn’t updated for macOS 11 and will refuse to load the file, first giving an error about XML DOCTYPE, then - once that’s worked around - an IOException from the invalid ntools value in the LC_BUILD_VERSION load command. Disassembling the boot kext collectionįor debugging, I also had to disassemble the newly created Boot Kext Collection in Ghidra. Once the build_arm64e_kcache.sh runs, a Boot Kext Collection is created at ~/kcache_out/bootcache-arm64e, which can be booted in QEMU. I had to disable SIP and put a breakpoint on swift_errorRetain to get at the underlying error. #Arm emulator mac fullHowever, on macOS 11.0.1 beta, Apple decided to hide the full error message and only print an error code. I made a script to detect them.ĭebugging kmutil failures on macOS 11 beta 3 was easy because it dumped out the entire NSError message. Most are because they depend on ACPI, which is not available on Apple Silicon. It manually excludes some kexts because they cause kmutil to error out. Here’s my script to get kmutil to generate an arm64e kext collection. To create a boot kext collection, macOS 11 introduces the kmutil tool. Like the iOS kernelcache, it contains all Kexts required for booting, so the bootloader only needs to load it into memory and jump into it. MacOS 11 uses an evolved version of this format, called the Boot Kext Collection. On iOS, the kernel and its Kexts are packed together into a bootable file called the Kernel Cache. This will never be a Time Train: only a science experiment. #Arm emulator mac macI researched this this not because it’ll be practical, but only to understand how an Apple Silicon Mac works. Besides, Hackintoshes are often built when Apple’s own hardware isn’t fast enough in this case, Apple’s ARM processors are already some of the fastest in the industry.
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |