close

黑蘋果

走到今時今日,仰賴 世界各地高手的出招

各種仿冒 ,修正等

使得 OS X 安裝在PC硬體上

逐漸地 趨近完美了

 

但是.每每更新後 ,我想幾乎 都會遇到的問題 就是“失聲”

System/Library/Extensions/AppleHDA.kext

會被覆蓋(更新後 的 高版號)

 

於是乎,

假如能 “自動修正” 因更新 所被替換的 文件 ,定義值

是不是 就能

不受更新版號 的覆蓋 ,照常 使用我們 的 自定義呢?

 

以下文章,將實現 這個“目標”前進....

 

首先,

AppleHDA.kext的修改 是環環相扣 其中有一步驟出錯

沒有聲音輸出 是肯定的

 

目前的AppleHDA.kext 是如何修改的?

例如我的音效卡 是ALC892 (0x10ec0892) ,Layout=01

 

AppleHDA這個文件 ,

我們可以 透過 HexEdit Mac 之類的軟體 

打開 將 8b19d411替換成 9208ec10 (兩次)

 

再來

輸入/出 節點 定義值

被放於

AppleHDA.kext 右鍵顯示 套件內容

Contents/Resource/layout1.xml.zlib Platforms.xml.zlib

另一處

AppleHDA.kext 右鍵顯示 套件內容

Contents/PlugIns/AppleHDAHardwareConfigDriver.kext

右鍵顯示 套件內容

 Contents/info

 IOKitPersonalities>HDA Hardware Config Resource>HDAConfigDefault

 

以上的工作 都是在修改AppleHDA.kext

最後

再配合 layout值的 設定

(dsdt.aml 或 HDAEnabler1.kext 又或 Clover均能 標註成功)

 

 

如一開始 所提到更新後 就會被完成覆蓋掉了

那我們就來技術犯規

讓 AppleHDA.kext 不被加載 (不是刪除它 噢)

 

我們需要

一個替代而且 能調用 原生AppleHDA.kext插件的 驅動(.kext)

至於名稱是啥?

隨便啦 姑且稱作 AppleHDA8Series.kext

 

開始

把一個 原生的AppleHDA.kext(10.9.1原生版號是 2.5.3)

拷貝到 桌面 (改名稱 為 AppleHDA8Series.kext)

 

右鍵顯示 套件內容

只留 三個東西(info.plist , MacOS資料夾Resource資料夾)

螢幕快照 2013-12-31 上午5.39.08

其他都刪除.

(MacOS資料夾 與 Resource資料夾 內也是要  空的)

  

逐一修改

info.plist

將原生版號 2.5.3 都改成 9.1.1fc1 (三處)

螢幕快照 2013-12-31 上午5.44.58   

 

MacOS資料夾 裏面

需要 有一個 AppleHDA的替身(捷徑)

指向位置:

/System/Library/Extensions/AppleHDA.kext/Contents/MacOS

 

螢幕快照 2013-12-31 上午5.48.45  

 

Resorce資料夾 裏面

需要 修改好的  layout1.xml.zlib與 Platforms.xml.zlib 兩個文件

螢幕快照 2013-12-31 上午5.52.13  

以上 這個 AppleHDA8Series.kext 就修改完畢

 

聰明的你,應該會想到

AppleHDA就個文件 與AppleHDAHardwareConfigDriver.kext

怎沒改呢? 更新也是會受影響呀!!

是的

我這裡是靠 Clover幫我們 自動替換 8b19d411>9208ec10

螢幕快照 2013-12-31 上午6.06.49  

至於

AppleHDAHardwareConfigDriver.kext的info裡的

HDA Hardware Config Resource值

很簡單

加到 Fakesmc的info裏面 IOKitPersonalities

螢幕快照 2013-12-31 上午6.09.49  

 

這樣 我們就可以 把 Apple8Series.kext 與 原生的AppleHDA.kext

用 Kextuility 之類工具 安裝

重啟之後

沒意外 就會發聲了

 

從這裡 觀察 AppleHDA.kext(2,5,3)不被 加載

螢幕快照 2013-12-31 上午4.17.59

 

 被 加載 是AppleHDA8Series.kext(9.1.1)

螢幕快照 2013-12-31 上午4.17.43   

而且 還成功調用

AppleHDAController.kext

AppleHDAHardwareConfigDriver.kext

  

接著,我下載 10.9.2版號更新 來驗證 此方法 是否可行?

 

答案是 :通過

 

10.9.2的 AppleHDA.kext(版號2.6.0)依然 未被加載

螢幕快照 2013-12-31 上午4.37.21

 

 

AppleHDA8Series.kext 依然是 被加載

 而且 還成功調用

 AppleHDAController.kext

 AppleHDAHardwareConfigDriver.kext

螢幕快照 2013-12-31 上午4.37.45  

因為 AppleHDA8Series.kext版號

高於 原生的AppleHDA.kext

因此 ,原生的AppleHDA.kext將不會 被加載

 

最後是希望 蘋果 不要去大改 AppleHDA.kext 的結構啦

 

 附件下載:

10.9.1原生AppleHDA.kext,

改好的 AppleHDA8Series.kext

(自行放入 適合您的修改好的  layout1.xml.zlib與 Platforms.xml.zlib  )

 

 

 

arrow
arrow
    文章標籤
    AppleHDA OS X 10.9
    全站熱搜

    bctel 發表在 痞客邦 留言(6) 人氣()