許多 OS X 10.11 El Capitan Public Beta 的黑蘋果用戶,在這兩天升級至 Beta 3 之後,陸續傳出了災情...
- 無法開機,因為 FakeSMC.kext 無法載入。
- 即使勉強開機,修正或另外安裝的 kexts 也失效了(如網卡的驅動 kext,修正過的 AppleHDA.kext 音效,藍芽/WIFI/USB/Sata...等等)
這兩天爬了一些文,發現上述問題的原因,貌似和所謂的 SIP 有關。如果是的話,黑蘋果用戶恐怕又得開始擔心了...
什麼是 SIP?
SIP 全名是 System Integrity Protetion,詳細的介紹可以參考 Apple 的官方說明(網址)及 WIKI 說明(網址)。大意是 SIP 是 OS X 10.11 新增的安全機制,可分為三種類型:
- 受保護的系統核心檔案
- 受保護的運行中程序
- Kext 必須被簽署驗證才能載入
為了保護系統磁區上的核心運作元件,系統只允許某些安裝程式和重要系統升級時才能更新異動。使用代碼注入(Code injection)或運行附加(runtime attachments)方式將不再被被允許了。而 SIP 運行的時候,沒有經過簽署的 Kexts 元件,都會被拒絕。
簡單來說,安全機制的概念是「Admin != kernel」,即使是最高管理權限的用戶,也無法任意更動核心元件。
對白蘋果用戶來說,安全性更高了,用戶點擊惡意的檔案/連結且輸入管理密碼之後,系統被植入惡意程式的可能性大幅降低,可是對黑蘋果用戶來說,這安全機制恐怕會讓黑蘋果的漂白之路更加坎坷...
OS X 10.11 El Capitan 的 SIP 預設值是啟用的。在 Public Beta 2 以前,可用 NVRAM 內的參數 boot-args="rootless=0" 將 SIP 功能關閉,不過從 Public Beta3 開始, rootless 參數的開關方式就無效了(deprecated)。在白蘋果上,必須開機進入 Recover HD ,執行 Security Configuration ,取消勾選「Enforce System Integrity Protetion」才能將系統的 SIP 功能關閉。不過在黑蘋果上,這種透過 Recover HD 切換 SIP 的方式也是無效。
(註:OS X 10.11 El Capitan GM 版再度修改 SIP 的切換方式,拿掉了 Recover HD 模式下的 Security Configuration 的勾選設定方式。一樣是必須進入 Recover HD 開機之後,使用終端機輸入 csrutil enable/disable 指令進行切換。)
除此之外,磁碟的權限修復也有重大改變,以往用戶使用磁碟工具進行修復權限的方式將不復存在。
SIP 機制對黑蘋果的影響
Clover 使用 Inject Kexts 的方式,注入 EFI/CLOVER/kexts/10.11/ 底下的 kexts 也會被新的 SIP 安全機制拒絕。
以黑蘋果必要元件 FakeSMC.kext 為例,Public Beta 3 開始無法透過 Clover EFI 的 Inject Kexts 方式掛載,目前唯一的方式是必須將 FakeSMC.kexts 安裝到 S/L/E 目錄。不過別高興得太早,即使想盡辦法將 FakeSMC.kext 安裝運作,一旦 kernel Cache 被重建的時候(例如後來再安裝其他 Kext),FakeSMC.kext 會被認定為未簽署的 Kext,下次開機時 FakeSMC.kext 就會被拒絕載入,導致無法開機。
而 Clover 最常使用的 AppleHDA.kext 音效修正方式,也會跟著出問題。系統一旦發現 Kext 檔案被修改過,也會將它認定為未簽署的 Kext 而拒絕載入。更別說其他第三方 kext 套件,全被 SIP 擋在門外。
基於上述的安全機制,結果就是將你的黑蘋果系統立刻打回原形。如果你的黑蘋果必需使用一堆第三方 kext 外掛,或是大量修正原生 kext (如顯卡 FrameBuffer / 藍芽及網卡修正支援 Handoff)才能運作,被打回原形之後,恐怕連堪用都成問題。
所以了,為了將來黑蘋果之路能夠更加平順,一開始採購黑蘋果硬體的 OOB(Out of Box)策略就成了重點,能用最少的修正達到黑蘋果的目的,會減少很多冤枉路,三年前我寫的文章(黑蘋果採購指南:七、後記)就強調過這個重點。我的黑蘋果設備幾乎都是 OOB ,在這次升級之後,只有有線網卡失效,而音效透過 DSDT 修正之後, 至少還有 HDMI 可以用,算是災情很輕微的了。
一切的問題都圍繞在 SIP 機制上,黑蘋果用戶如果能夠關閉 SIP,相信問題就解決不少。
黑蘋果關閉 SIP 機制的方法
1. 使用新版的 Clover EFI(v2.3k_r3252):下載 7311樓 的附件(網址)並安裝。
2. 掛載 EFI ,並編輯 EFI/CLOVER/config.plist,在 RtVariablies 底下加上 BooterConfig = 0x28 與 CsrActiveConfig = 0x67 兩行。
3. 將 FakeSMC.kext (下載)安裝在 S/L/E。完成後重開機。(註:Clover v2.3k_r2359 已經支援關閉 SIP 後在 /EFI/CLOVER/kexts/10.11/*.kext 注入支援了!不需再安裝至 S/L/E 底下)
4. 檢查是否已關閉 SIP:開啟終端機,輸入指令:
csrutil status
確認 SIP 已關閉之後,就可安裝三方 kext 了。
其他資料參考:@FredericJacobs、The Fight for Root、Clover General discussion、SIP/Rootless Internal in El Capitan
升級到 10.11 Beta5 之後 USB 無法運作
不少人遇到升級到 Beta 5 之後,出現 USB 2 或 USB 3 無法運作的問題。我的黑蘋果主機板 GA-Z77X-UP4 TH 上面有三個 USB 2.0 10-pin header 插座,只有No.3 這個是正常的,其他兩個不會運作,而 USB 3.0 維持正常。
這個問題依舊導因於 Apple 修改了 USB 的運作規則,針對不同機型加上了指定 USB Port 的限制(Ports Restriction)。如果你的黑蘋果 DSDT 內容的 USB IO 名稱定義剛好落在 Apple 的限制範圍,就會發生這個問題。我的黑蘋果 DSDT 內的 USB 2.0 使用名稱 EHC1 / EHC2 跟 Apple 定義的都一樣,所以很不幸中招了。
然而黑蘋果設備中 BCM94360CD WIFI + Bluetooth PCI-e 這個模組必須獨佔一個 USB 2.0 10-pin 插座,於是另一個需要 USB 2.0 10-pin 的讀卡機裝置就掛點了。有的主機板只有兩組以下的 USB 2.0 10-pin ,導致這些 USB 2.0 全數罷工。
解決方法有三種,擇一即可:
一、修改 AppleUSBEHCIPCI.kext/Info.plist
修改 S/L/E 底下 IOUSBHostFamily.kext/Contents/PlugIns/AppleUSBEHCIPCI.kext/Contents/Info.plist 內容,找到對應的機型,刪除 port-count 與 ports 鍵值即可,就可取消 USB Ports Restriction 的限制。
(參考來源:insanelymac.com)
二、修改 DSDT.aml
將 EHC1 / EHC2 變更為 EH01 / EH02,規避蘋果的 USB Ports Restriction 規則,這樣就不需修改 kext ,也就不用擔心 OS X 升級後 kext 被蓋掉的可能性。
三:修改 EFI/config.plist (*推薦)
修改 config.plist/ACPI/DSDT/Patches 加上兩個鍵值,作用原理和上面修改 DSDT.aml 一樣,都是將 EHCx 改為 EH0x 來規避蘋果的 USB Ports Restriction 規則。
<key>Patches</key>
<array>
<dict>
<key>Comment</key>
<string>Rename EHC1 to EH01</string>
<key>Find</key>
<data>
RUhDMQ==
</data>
<key>Replace</key>
<data>
RUgwMQ==
</data>
</dict>
<dict>
<key>Comment</key>
<string>Rename EHC2 to EH02</string>
<key>Find</key>
<data>
RUhDMg==
</data>
<key>Replace</key>
<data>
RUgwMg==
</data>
</dict>
</array>
如下:
不太清楚 Apple 為何要這麼做,著名的 RehabMan 大大的說法是, Apple 於 OS X El Capitan 10.11 重新改寫 USB 驅動,綁定更多且更依賴 ACPI 定義的內容,然而某些 Apple 自家 Mac 產品中也存在若干 ACPI 定義上的問題,所以又以 Kext 掛載的方式重新定義 USB 的屬性,再度加深了 OS X 與 Mac 硬體之間彼此綁定的程度。
對黑蘋果用戶來說,黑蘋果硬體屬性與 Mac 設備之間仍有些不同,外掛綁定暨定義的方式直接影響黑蘋果的 USB 運作,尤其是使用了相同名稱(詳見:[Guide] 10.11+ USB changes and solutions,#Post 54),黑蘋果安裝與完美運行 OS X 的難度又拉高了。
OS X El Capitan 10.11 (Build 15A284) 已於台灣時間 2015.10.1 凌晨 01:00 於 Mac App Store 上架。安裝方式與預覽版相同,詳情可參考這篇文章。

已經跳回 Windows 10了,用起來不會像Windows 8/8.1那樣礙手礙腳! (那夭壽的動態磚已經縮去開始功能表了.............) 承襲 Windows 8/8.1 一樣的缺點是輸入法要用 TSF 版, 以前都用網路上流傳的「校園版」嘸蝦米, 現在只好認份掏 990 到官網買= .=(嚴格說來這是應該的) 另外,Windows 10 終於加入「Print to PDF」這功能, 之前在 Mac OS X 上用習慣了, 回去用 Windows 7/8/8.1 變成超不習慣的..... 目前正努力和 Windows 10 做朋友中..... 下載鏈結如下,有興趣的人可以下來玩玩! http://www.microsoft.com/zh-tw/software-download/windows10?OCID=WIP_r_Win10_Body_AddPC
從 Inside Preview 開始我也已經加入了 Windows 10 , 安裝在虛擬機跟黑蘋果設備上(用一顆獨立的硬碟來裝), 直到 10240 版釋出之後,這兩台就直接就給它合法升級 Windows 10 Pro 並啟動啦~ 終於告別快樂版了...XD, 改天試著重灌 Windows 10 Pro 試試,應該會自動啟用才對... 上個月抽獎入手的 Surface Pro 3 , 前兩天也給它免費升級成 Windows 10 Pro 了, 目前是 Windows 10 Pro + OS X 10.10.4(黑蘋果) 雙系統。 可惜我的 MacBook Air 晚了一步... Inside Preview 版已經不能啟動了。
有一件事想請教BEN大~~~ 你的USB設備都沒問題嗎 ? 因為我的USB2.0沒問題 但是USB3.0就無法驅動了 !
是的,我的版子GA-Z77X-UP4 TH的原生USB2/3全都沒問題(非原生的VIA USB3除外⋯一樣是無法原生驅動) 不論是2.0裝置插3.0,或3.0裝置插2.0,通通沒問題 (我有用DSDT修正)
不曉得是不是它安裝檔有問題??? 用 M$ 官方程式製作的Windows 10 USB安裝碟, 沒有辦法在 UEFI模式下直接安裝(純 Windows 10)..... (在BIOS模式下,直接安裝沒問題) 只好用安裝碟開機,在命令列用 DISKPART 分割硬碟,然後用 DISM 安裝 (這命令,說實在我不太會用,目前只會把WIM檔解開到系統碟) ,最後再BCDBOOT一下。麻煩,但純Windows 10..... 至於「啟用」部份,因為之前一直很「快樂」, 目前只能靠KMSpico啟動神器了。 Windows Defender 不用更新已經鎖定神器, 若直接把Defender關掉則會黑畫面..... (目前是先灌防毒,讓Defender「被關掉」,再.....)
我安裝 Windows 10 倒是沒遇過任何問題, 記得官版提供的 USB Tools 會把隨身碟格式化成 NTFS , 可能是這原因才讓 UEFI 安裝出問題。 我的做法是先將 USB 以 Fat32 格式化之後, 用 UltraISO 將 Windows 10 ISO 寫到 USB 上, 這支 USB 就可以同時對應Windows 10 的 Legacy 與 UEFI 安裝。 我的黑蘋果設備就是 UEFI 安裝 Windows 10 Inside Preview 之後, 再直接升級 10240 TH 版。
你好,看到你的文章獲益良多,自己已經成功組裝了一台黑蘋果 想請教說: 藍芽跟Wifi尚未搞定,想啟用Hands-off 以及 Continouty功能 請問要啟用以上功能還有AirDrop是一定要購買你先前介紹的蘋果原廠Wifi藍牙晶片合卡呢?還是購置國外論壇討論相容的晶片就可以了? 另外我想在Clover就啟用藍芽鍵盤(單純不想再拿有線鍵盤出來) 問題也是跟上述一樣非要原廠呢?還是相容的晶片再嘗試尋找kext?
1.我所知道的是,Handoff 必須是 Broadcom 的藍芽晶片才會運作。所謂的相容晶片,指的也是前幾代 Mac 使用的 Broadcom 藍芽產品,必須經過破解才會運作。可以參考以下連結 http://applefans.today/blog/1526011530 2.在開機階段(Clover 選單)就能啟用藍芽的話,我手邊只有 Apple 原廠的設備,也的確可以這麼做(Magic Trackpad 跟藍芽鍵盤都可以),不清楚非原廠裝置是否也能這麼用。開機階段由 UEFI BIOS負責,與 Kext 無關。
想請問您一下 您說的fakeSMC安裝在S/L/E下面是指說先想辦法能正常開機進入系統中在裝到S/L/E下面嗎 謝謝 因為手邊目前還有黑蘋果給我試 不太確定您說的意思
我的黑蘋果設備有多顆硬碟,其中也有 Yosemite 10.10。我是從 10.10 開機,再安裝 FakeSMC.kext 到 10.11 的 S/L/E 底下。 從 10.10 將 FakeSMC 安裝 10.11 的 S/L/E 的做法是: - 從 10.10 執行安裝 HWSensors (就是本文中提到的 FakeSMC 下載連結),目標捲冊選 10.11 ,內容選 自訂,將 FakeSMC 勾選起來(預設值是不勾選)。 接著就可以用 10.11 重開機了。即使 SIP 有打開,這情況下 FakeSMC.kext 至少會被載入一次,倘若沒別的干擾因素時,可以進入 10.11 的桌面。
請問USB這部份 是不是有用DSDT才需要修改 因為我沒用DSDT 所以現在USB有點錯亂 但還是能用 只是希望能 修正 USB3.0 的功能 我是B85M-DS3 該怎麼修改呢? 我是有找到DSDT 不知放進去 會不會有什麼錯誤 這是我找到的 DSDT 能不能請大大 幫忙指導一下呢? https://drive.google.com/file/d/0Bx5DIhB6KCwhT21oLWlPekYzTGc/view?usp=sharing
這篇文章提到的方法 3 就是不使用 DSDT.aml 的修正法。 DSDT 是 ACPI 規範內的配置表,用來定義設備的硬體屬性, 這份屬性定義存放於 BIOS 內。 不論是 Mac 或是一般 PC ,少了 DSDT 就無法運作, 而 OS X 強調與 Mac 之間的軟硬體整合, 刻意的依賴 DSDT ,所以黑蘋果技術中才會有 DSDT 修正, BootLoader 可透過外掛檔案 (DSDT.aml) 的方式來運作, 用戶也不用冒險更新 BIOS 來修正 DSDT 。 舊文章「 黑蘋果二號攻略(2)」有比較詳細的 DSDT 說明 (密碼在「黑蘋果二號攻略(1)內文」) 錯誤的 DSDT 有可能發生軟硬體衝突,導致 OS X 無法開機喔!
經過試驗,Windows 8.1 pro 從 快樂版(採非官方「KMS啟動」) 升到 Windows 10 pro 後會漂白成正式版,會有新序號 (該序號大家是否一樣或是否被「列管」就不知了) 但可以確定的是.....新序號無法用在全新安裝! 升級完、確認已啟動後,最好Ghost一份......
您好!近期安裝10.11.1後USB3無法使用 方法3內為USB2修正方法 那USB3的修正方法該怎麼做呢? 文內除了更改名稱外data值也做了替換 請問那個值具體作用為何?
我沒有遇到這個問題,的確也看過有人反應 USB3 在 10.11 掛點, 解法詳情請參考這篇吧~ http://www.tonymacx86.com/el-capitan-laptop-support/173616-guide-10-11-usb-changes-solutions.html
您好!我有找到幾段影片教學 有配合dsdt去修改kext的方法來修正usb 使用二號攻略文內的dsdt提取程式卻一直跳錯無法提取 後來找到別的程式,但是在usb那段內容是空的 看網上的教學,那段應該會有port的資訊等等 我要是自行加入可行嗎? 還是會因為主機板不同而語法不一樣?
原始的DSDT就儲存在BIOS內,當然和主機板有關, 自行加入肯定會有影響,但不能確定一定能解決該問題
您好! 我在系統資訊內看到usb2.0 主機控制器驅動程式:AppleUSBEHCIPCI 3.0是AppleUSBXHCILPTHB 似乎抓到錯誤的驅動?? 看網上的教學3.0的驅動應該為AppleUSBXHCILPCI?
USB 3 的驅動為 XHCIPCI ,USB 2.0 為 EHCIPCI , 據我所知 USB 3.0 在 OS X 不太可能有「抓錯驅動」這回事 (抓錯驅動是 Windows 特性,而 OS X 抓錯驅動大多發生在顯卡上。) 應該是 OS X 10.11 的 USB 3 驅動與您的黑蘋果硬體相容性不佳導致。
你好請問我最近安裝好了黑蘋果 現在發現原生的usb插槽不論是2.0還是3.0的 都只能讀取到2.0的usb設備 3.0能使用的方法就是插到原生2.0 usb插槽 請問這該如何解決?
版主 有沒有FB呀 我有辦法解決usb的問題 只要是Intel原廠的USB都可用喔