修改原版AppleUSBXHCI使用第三方USB3.0晶片 (附上第三方驅動)
本帖最后由 shiecldk 于 2015-8-2 03:00 编辑本人親測μPD720200跟μPD720202都能使用
10.8.2patchedAppleUSBXHCI:內附Zenith432的破解方式)
10.8.3 patchedAppleUSBXHCI:
要替換原本/System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns下的AppleUSBXHCI 不然當然會死機
在這大概說明一下破解的內容:
(以下附上hex code跟otool反編譯的數據以後更新請自己用HexEdit破解)
目前這裡面總共有七個patch
第5520行:755b --> eb5b檢查USB3.0晶片是否為Intel Panther Point或Fresco Logic 若沒破解就不能使用第三方晶片在AppleUSBXHCI裡的Info.plist 加入AllowAnyXHCI=true 能達到同樣的效果
第5621行:663d0001 --> 663d0000檢查USB3.0晶片是否大於等於xHCI 1.0規範例:μPD720200是xHCI 0.96 μPD720202是xHCI 1.0若沒破解μPD720202仍可辨識μPD720200就不行
第6d60行:81490800004000 --> 81490800000000解決MSI使用或PIN interrupt的問題以及睡眠問題 (幾乎所有第三方USB3.0晶片都必要此破解不然裝置都連不上)但是個人認為這也是造成此破解的AppleUSBXHCI比PXHCD慢的原因
第7ce4行:41c744240800004000 --> 41c744240800000000同上
第7fcb行:41c7460800004000 --> 41c7460800000000同前兩個 此三個破解都是解決MSI或PIN interrupt的問題個人試過這三個破解少用其中幾個 會使CPU效能減半因為USB3.0有兩個interrupters一個是USB2.0另一個才是USB3.0這也是為什麼使用AppleUSBXHCI時 同一個USB接口在系統資訊裡會同時出現USB High-Speed Bus跟USB SuperSpeed Bus
有些USB3.0控制器能同時使用MSI和PIN interrupt(像是Intel Panther Point)有些只能用到PIN interrupt但不能使用MSI 有些兩個都不行
PXHCD.kext用的是USB3.0晶片裡的USB2.0的interrupter所以系統資訊理顯示為480mb/s (那個USB Super-Speed Bus是他們在驅動裡加的..) 硬把USB2.0的interrupter拿來跑USB3.0的速度所以當然有時會出問題 但是卻解決不能使用MSI或PIN interrupt的問題
詳細資訊在這http://www.insanelymac.com/forum/topic/285157-patched-appleusbxhci-from-os-1082/page__st__20#entry1878236
第1000e行:c680c800000001 --> c680c800000000當進入睡眠時IOUSBFamily.kext會關掉USB控制器並在喚醒後重新開啓任何的儲存裝置都會在睡眠時斷線這個破解能在你喚醒時重新連結儲存裝置 如果你沒這個問題可以不用使用
第10056行:7526488bbbe8010000 --> eb26488bbbe8010000解決PCI電源控制問題如果DSDT裡有xhci管理則不必用到
根據其他人回報使用此破解的AppleUSBXHCI 能正常睡眠喚醒
2/28更新 本人使用Clover r1140配合此AppleUSBXHCI 能正常睡眠喚醒
原帖在這:由神人Zenith432破解http://www.insanelymac.com/forum/topic/285157-patched-appleusbxhci-from-os-1082/#entry1875885
話說Zenith432就是那位開發虛擬機下的OSX的顯卡驅動
本帖最后由 shiecldk 于 2013-2-27 21:03 编辑
如果這個破解的AppleUSBXHCI不能用可以試試PXHCD
有些人之前在這回報用了PXHCD會五國或是log裡產生很多USB接口的資訊
在這附上的PXHCD應該解決了以上問題各位可以試試:
同樣地PXHCD的log問題也是由Zenith432解決{:9_607:}http://www.insanelymac.com/forum/topic/284654-patched-lacie-usb-30-driver/ 本帖最后由 shiecldk 于 2013-2-27 21:01 编辑
Zenith432說他是用otool來反編譯AppleUSBXHCI跟PXHCD
其他神人可以來試試 以後破解其他kext就交給你們啦
用法:otool -tv(空一格, 把檔案拖到這)
我試著破解了10.8.3的AppleUSBXHCI 等出了正式版有空再傳上來
有使用Clover的人可以直接用以下代碼 以後更新就不用再破解了
<key>KernelAndKextPatches</key>
<dict>
<key>KextsToPatch</key>
<dict>
<key>0</key>
<dict>
<key>Name</key>
<string>AppleUSBXHCI</string>
<key>Find</key>
<data>dVs=</data>
<key>Replace</key>
<data>61s=</data>
</dict>
<key>1</key>
<dict>
<key>Name</key>
<string>AppleUSBXHCI</string>
<key>Find</key>
<data>Zj0AAQ==</data>
<key>Replace</key>
<data>Zj0AAA==</data>
</dict>
<key>2</key>
<dict>
<key>Name</key>
<string>AppleUSBXHCI</string>
<key>Find</key>
<data>gUkIAABAAA==</data>
<key>Replace</key>
<data>gUkIAAAAAA==</data>
</dict>
<key>3</key>
<dict>
<key>Name</key>
<string>AppleUSBXHCI</string>
<key>Find</key>
<data>QcdEJAgAAEAA</data>
<key>Replace</key>
<data>QcdEJAgAAAAA</data>
</dict>
<key>4</key>
<dict>
<key>Name</key>
<string>AppleUSBXHCI</string>
<key>Find</key>
<data>QcdGCAAAQAA=</data>
<key>Replace</key>
<data>QcdGCAAAAAA=</data>
</dict>
<key>5</key>
<dict>
<key>Name</key>
<string>AppleUSBXHCI</string>
<key>Find</key>
<data>xoDIAAAAAQ==</data>
<key>Replace</key>
<data>xoDIAAAAAA==</data>
</dict>
<key>6</key>
<dict>
<key>Name</key>
<string>AppleUSBXHCI</string>
<key>Find</key>
<data>dSZIi7voAQAA</data>
<key>Replace</key>
<data>6yZIi7voAQAA</data>
</dict>
</dict>
</dict>
0是AllowAnyXHCI的破解
1是xHCI 0.96的破解
2~4是MSI跟PIN interrupt的破解
5是喚醒時重新連結的破解
6是PCI電源控制的破解
赞一个先
话说你用的Xcode是什么版本 默认就有Otool么
hellozhangxin 发表于 2013-2-11 19:11 static/image/common/back.gif
赞一个先
话说你用的Xcode是什么版本 默认就有Otool么
我記得默認好像沒有
要裝在Xcode裡裝Command Line Tools
在Xcode>Preferences>Downloads>Command Line Tools shiecldk 发表于 2013-2-11 19:14 static/image/common/back.gif
我記得默認好像沒有
要裝在Xcode裡裝Command Line Tools
有空试试
不过我未必能看懂反编译出来的内容
也许凹凸曼奶牛能看懂 必须mark!然后等10.8.3出来就测试. hellozhangxin 发表于 2013-2-11 19:14 static/image/common/back.gif
有空试试
不过我未必能看懂反编译出来的内容
也许凹凸曼奶牛能看懂
我完全不懂 ==
只能看別人改的來對照 供升級後用{:9_605:} hellozhangxin 发表于 2013-2-11 19:14 static/image/common/back.gif
有空试试
不过我未必能看懂反编译出来的内容
也许凹凸曼奶牛能看懂
皮卡丘 你在一个帖子里提到现在的uefi已经用不到大部分patch了...那么用了不会有什么不良后果吧? haronsx 发表于 2013-2-11 19:23 static/image/common/back.gif
皮卡丘 你在一个帖子里提到现在的uefi已经用不到大部分patch了...那么用了不会有什么不良后果吧?
我有说过么
你要Patch神马? shiecldk 发表于 2013-2-11 19:23 static/image/common/back.gif
我完全不懂 ==
只能看別人改的來對照 供升級後用
你能试试反编译ATI5000Controller.kext把文件保存给我吗
{:9_411:} hellozhangxin 发表于 2013-2-11 19:24 static/image/common/back.gif
我有说过么
你要Patch神马?
...比如说RTC啊...本来就没问题的...但是patch下没问题吧
还有。。撸主这个是针对NEC...Etron等第三方?这些都能用? haronsx 发表于 2013-2-11 19:28 static/image/common/back.gif
...比如说RTC啊...本来就没问题的...但是patch下没问题吧
还有。。撸主这个是针对NEC...Etron等第三方 ...
我用Clover的PatchRTC参数会直接五国
你可以试试 hellozhangxin 发表于 2013-2-11 19:25 static/image/common/back.gif
你能试试反编译ATI5000Controller.kext把文件保存给我吗
OK
這裡:
用OSX的文字編輯就能打開
它是反編譯ATI5000Controller.kext/Contents/MacOS/AMD5000Controller
shiecldk 发表于 2013-2-11 19:30 static/image/common/back.gif
OK
這裡:
{:9_419:}谢啦
只是完全看不懂 haronsx 发表于 2013-2-11 19:28 static/image/common/back.gif
...比如说RTC啊...本来就没问题的...但是patch下没问题吧
还有。。撸主这个是针对NEC...Etron等第三方 ...
恩恩 都能用
聽說連Ti的晶片也可以 shiecldk 发表于 2013-2-11 19:32 static/image/common/back.gif
恩恩 都能用
聽說連Ti的晶片也可以
好棒!先点赞! 天哪。。。有人本本的nec芯片试过吗?我每次试都会五国啊
能破解肯定要赞。
能有类似这样的破解多黒果会更多的。 hyunbinrain 发表于 2013-2-12 21:28 static/image/common/back.gif
天哪。。。有人本本的nec芯片试过吗?我每次试都会五国啊
用什麼五國的??