• Building the High Sierra XNU

  • Development and testing of modified XNU Kernels for AMD CPUs on OS X

Please remember to read and follow the rules here.

Please Donate or visit my Amazon Wishlist if you've found the website useful. Thanks.

Development and testing of modified XNU Kernels for AMD CPUs on OS X
#41293 by Shaneee
Mon Jun 18, 2018 2:13 pm
Here you can learn how to compile the High Sierra XNU. This is aimed at the 10.13.3 source.

To begin with you'll need Xcode 9.2 as anything higher compiles it in such a way that it'll break Clover Kext Injection. You'll also need the Command Line Tools to match. Both are linked below.
Code: Select all


Once you've got those both downloaded and installed you'll need to build the dependancies to be able to compile the XNU.
Download the script below from afrighetto.
Code: Select all

Once downloaded I recommend placing it in a folder in the Documents folder so for example Documents/BuildXNU.

Now open up Terminal and follow these commands.
Code: Select all
cd Documents/BuildXNU

MACOS_VERSION=10.13.3 ./build-xnu.sh

Now the last part may fail which is fine, no need to worry. It just compiles the vanilla XNU.

Now download the 10.13.3 XNU (xnu-4570.41.2) from the link below.
Code: Select all
With that downloaded unpack it so you've got the folder. Now using Terminal CD into the XNU folder. From here we can apply the AMD diff file, make any changes and compile the kernel ready for use.

Download my AMD diff from here,
Code: Select all

Now back at Terminal you should be in the XNU folder. To apply the diff to the source run this command replacing the diff path with where you've save it.
Code: Select all
patch -p1 < /Path/To/Diff

Now the source is AMD ready. Make any changes you wish but pay attention to osfmk/i386/cpuid.c and osfmk/i386/tsc.c as this is where most of the AMD magic happens.

Once you've done making any changes with Terminal once again in the XNU folder run this to compile the kernel,
Code: Select all

If successful the built kernel will be in BUILD/obj/RELEASE_X86_64/

If you wan't to build the matching System.kext and Frameworks use the build command,
Code: Select all


#41476 by rohan
Sat Jun 30, 2018 6:18 am
@Shaneee, whats the use of this? will the performance increase?? i have ryzen 7 1800x