└── README.md /README.md: -------------------------------------------------------------------------------- 1 | # **Guide Building XNU 16.7 (xnu-3789.70.16)** 2 | For Building XNU 16.7 from start to finish 3 | Requirements macOS 10.12.6 and Xcode 8.3.3 4 | 5 | **These must be done in order or it will not build** 6 | 7 | Open terminal.app // copy each command in as you go. 8 | 9 | Creating workspace 10 | ************************************* 11 | > 12 | ``` 13 | mkdir -p ~/Desktop/xnu_build 14 | ``` 15 | ************************************ 16 | > 17 | ``` 18 | cd ~/Desktop/xnu_build 19 | ``` 20 | 21 | #### Curling needed Sources 22 | ************************************ 23 | > 24 | ``` 25 | curl -O https://opensource.apple.com/tarballs/dtrace/dtrace-209.50.12.tar.gz && 26 | curl -O https://opensource.apple.com/tarballs/AvailabilityVersions/AvailabilityVersions-26.50.4.tar.gz && 27 | curl -O https://opensource.apple.com/tarballs/xnu/xnu-3789.70.16.tar.gz && 28 | curl -O https://opensource.apple.com/tarballs/libdispatch/libdispatch-703.50.37.tar.gz && 29 | curl -O https://opensource.apple.com/tarballs/libplatform/libplatform-126.50.8.tar.gz 30 | ``` 31 | 32 | #### Extracting and Removing Tar.gz files 33 | ************************************ 34 | > 35 | ``` 36 | for file in *.tar.gz; do tar -zxf $file; done && rm -f *.tar.gz 37 | ``` 38 | 39 | #### Building Dtrace's CTF"s Bianries 40 | ************************************ 41 | > 42 | ``` 43 | cd dtrace-209.50.12 44 | ``` 45 | 46 | ************************************ 47 | > 48 | ``` 49 | mkdir -p obj sym dst 50 | ``` 51 | 52 | ************************************ 53 | > 54 | ``` 55 | xcodebuild install -target ctfconvert -target ctfdump -target ctfmerge ARCHS="x86_64" SRCROOT=$PWD OBJROOT=$PWD/obj SYMROOT=$PWD/sym DSTROOT=$PWD/dst 56 | ``` 57 | 58 | ************************************ 59 | > 60 | ``` 61 | sudo ditto $PWD/dst/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain 62 | ``` 63 | 64 | #### Installing Availability 65 | ************************************ 66 | > 67 | ``` 68 | cd ../AvailabilityVersions-26.50.4/ 69 | ``` 70 | 71 | > 72 | ``` 73 | mkdir -p dst 74 | ``` 75 | > 76 | ``` 77 | make install SRCROOT=$PWD DSTROOT=$PWD/dst 78 | ``` 79 | 80 | ************************************ 81 | > 82 | ``` 83 | sudo ditto $PWD/dst/usr/local `xcrun -sdk macosx -show-sdk-path`/usr/local 84 | ``` 85 | #### Installing Headers to build libfirehose_kernel.a for XNU 86 | ************************************ 87 | > 88 | ``` 89 | cd ../xnu-3789.70.16/ 90 | ``` 91 | 92 | > 93 | ``` 94 | mkdir -p BUILD.hdrs/obj BUILD.hdrs/sym BUILD.hdrs/dst 95 | ``` 96 | 97 | > 98 | ``` 99 | make installhdrs SDKROOT=macosx ARCH_CONFIGS=X86_64 SRCROOT=$PWD OBJROOT=$PWD/BUILD.hdrs/obj SYMROOT=$PWD/BUILD.hdrs/sym DSTROOT=$PWD/BUILD.hdrs/dst 100 | ``` 101 | 102 | > 103 | ``` 104 | sudo xcodebuild installhdrs -project libsyscall/Libsyscall.xcodeproj -sdk macosx ARCHS='x86_64 i386' SRCROOT=$PWD/libsyscall OBJROOT=$PWD/BUILD.hdrs/obj SYMROOT=$PWD/BUILD.hdrs/sym DSTROOT=$PWD/BUILD.hdrs/dst 105 | ``` 106 | > 107 | ``` 108 | sudo ditto BUILD.hdrs/dst `xcrun -sdk macosx -show-sdk-path` 109 | ``` 110 | 111 | ### Copying libplatform source needed for libfirehose_kernel.a 112 | ************************************ 113 | > 114 | ``` 115 | cd ../libplatform-126.50.8 116 | ``` 117 | ************************************ 118 | > 119 | ``` 120 | sudo ditto $PWD/include `xcrun -sdk macosx -show-sdk-path`/usr/local/include 121 | ``` 122 | 123 | #### Building libfirehose_kernel.a 124 | ************************************ 125 | > 126 | ``` 127 | cd ../libdispatch-703.50.37 128 | ``` 129 | 130 | > 131 | ``` 132 | mkdir -p BUILD.hdrs/obj BUILD.hdrs/sym BUILD.hdrs/dst 133 | ``` 134 | > 135 | ``` 136 | sudo xcodebuild install -project libdispatch.xcodeproj -target libfirehose_kernel -sdk macosx ARCHS='x86_64 i386' SRCROOT=$PWD OBJROOT=$PWD/obj SYMROOT=$PWD/sym DSTROOT=$PWD/dst 137 | ``` 138 | > 139 | ``` 140 | sudo ditto $PWD/dst/usr/local `xcrun -sdk macosx -show-sdk-path`/usr/local 141 | ``` 142 | #### Building XNU 143 | ************************************ 144 | > 145 | ``` 146 | cd ../xnu-3789.70.16/ 147 | ``` 148 | ************************************ 149 | > 150 | ``` 151 | make SDKROOT=macosx ARCH_CONFIGS=X86_64 KERNEL_CONFIGS=RELEASE 152 | ``` 153 | --------------------------------------------------------------------------------