labaz 发表于 2014-1-17 22:25

編譯 OS X 10.6.3 AMD 核心懶人法與補丁教學

一 編譯AMD核心懶人法

來源 http://shantonu.blogspot.tw/2009 ... e-xnu-has-been.html

編譯 10.6.3 XNU(核心源碼) 需要安裝 Xcode 3.2 版本 和額外的依賴項目
Xcode 本身沒有這些依賴項目 需另外安裝

到 https://developer.apple.com/xcode/ 註冊一個 developer 帳號 下載 Xcode 3.2 版本安裝(DVD有保留就不必下載了)

原始連結裡面是下載源碼編譯 但是 dtrace-78 需安裝Xcode 3.1.2才有辦法編譯
為方便起見 我將依賴項目都編譯好了 下載附件10.6.3-xnu-build-tools解壓縮安裝即可

10.6.3-xnu-build-tools/bootstrap_cmds-72.pkg
10.6.3-xnu-build-tools/cxxfilt-9.pkg
10.6.3-xnu-build-tools/dtrace-78.pkg
10.6.3-xnu-build-tools/kext_tools-177.1.pkg

附件的依賴項目 10.6.3版可用
OS X 每個XNU版本的依賴項目可能都不同 所以要編譯其他版本的XNU 依賴項目版本就要自己找了

在桌面上新增一個資料夾 例如命名為 kernel

打開終端機
cd Desktop/kernel

下載10.6.3 xnu 源碼
curl -O http://opensource.apple.com/tarballs/xnu/xnu-1504.3.12.tar.gz

解壓縮
tar zxf xnu-1504.3.12.tar.gz

然後下載附件patch.diff.zip 解壓縮放到桌面kernel資料夾內
確保跟源碼同目錄

http://i152.photobucket.com/albums/s198/l2j2007/140117-0001.png

源碼目錄名稱必須對應patch.diff 裡面的名稱
http://i152.photobucket.com/albums/s198/l2j2007/140117-0002.png


然後終端機輸入

cd Desktop/kernel
patch -p0 -i patch.diff


就自動幫你打補丁 修改源碼了
http://i152.photobucket.com/albums/s198/l2j2007/140117-0004.png

完後就可以開始編譯

終端機輸入

cd Desktop/kernel/xnu-1504.3.12


編譯32bit核心
make ARCH_CONFIGS="I386" KERNEL_CONFIGS="RELEASE"

編譯64bit核心
make ARCH_CONFIGS="X86_64" KERNEL_CONFIGS="RELEASE"

編譯完成後
32bit核心在 BUILD/obj/RELEASE_I386/mach_kernel
64bit核心在 BUILD/obj/RELEASE_X86_64/mach_kernel

二 製作xnu源碼補丁

例如把修改過的源碼放在桌面kernel目錄內
把未修改的源碼命名 xnu-1504.3.12.org 一樣放在跟修改過的源碼同位置
http://i152.photobucket.com/albums/s198/l2j2007/140117-0005.png

終端機指令範例
cd 源碼所在目錄
diff -uNr 未修改源碼目錄名稱 已修改源碼目錄名稱 >補丁文件.diff


打開終端機輸入

cd Desktop/kernel
diff -uNr xnu-1504.3.12.org xnu-1504.3.12 >patch.diff


完成後 kernel 目錄內就會多出一個 patch.diff (源碼補丁文件)
页: [1]
查看完整版本: 編譯 OS X 10.6.3 AMD 核心懶人法與補丁教學