機(jī)型火影地獄火x6,同模具的機(jī)型還有機(jī)械革命z2,機(jī)械師F117,CPU是
Coffee Lakei7-8750H,系統(tǒng)版本macOS Catalina 10.15.7。
EFI 435b
一、準(zhǔn)備工作
1.1 硬盤
固態(tài)硬盤推薦三星(PM981除外),看Apple用的哪家供應(yīng)商,直接SM961/PM961最省事。
其他固態(tài)型號(hào)參考這里。
發(fā)現(xiàn)安裝卡進(jìn)度,可能是固態(tài)不兼容,可以嘗試裝在機(jī)械盤。
1.2 網(wǎng)卡
有線Intel網(wǎng)卡一般都能驅(qū)動(dòng),無線Intel的網(wǎng)卡基本無解,可考慮換博通網(wǎng)卡,常用型號(hào)DW1830(BCM 94360)、DW1560(BCM 94352z),DW1830比較寬,你的機(jī)器可能位置不夠裝不上,所以直接DW1560最省事,TB上的一般都是品牌筆記本拆機(jī)的,買聯(lián)想的最省事(現(xiàn)基本滅絕),XPS的可能不兼容你的主板,如表現(xiàn)為Windows 10下工作突發(fā)性死機(jī)。

1.3 分區(qū)
你可能需要重裝你的所有系統(tǒng),為了避免把硬盤格掉了裝,裝了再格掉的情況出現(xiàn),你需要了解:
1、算算系統(tǒng)分區(qū)需要多少。
2、macOS要求格式為APFS,即便你格式化為HFS+也會(huì)給你轉(zhuǎn)過去,由于蘋果原生不能寫NTFS,應(yīng)預(yù)留一定空間格式化為exFAT(FAT64)/FAT32(文件小于4G)作為交互空間,跟其他操作系統(tǒng)交互文件,避免出現(xiàn)數(shù)據(jù)不通的尷尬,文件是實(shí)在太大的時(shí)候,再考慮用移動(dòng)硬盤,移動(dòng)硬盤可掛到虛擬機(jī)(鏡像建議Windows 10 LTSC 2019)上讀寫,雖然本地硬盤分區(qū)能共享到虛擬機(jī),但沒有寫權(quán)限。反過來,也可以嘗試用Windows虛擬機(jī)掛載macOS分區(qū)。
3、Windows的安裝器萬年不更新,默認(rèn)分出的EFI分區(qū)不足300 MB,且總有未分配空間剩余,APFS要求EFI分區(qū)至少300 MB,否則拒絕格式化。舊版DiskGen快速分區(qū)默認(rèn)分出的EFI、MSR分區(qū)大小也是很小,建議全部手動(dòng)搞,全部直接分到四五百MB就沒有什么事了。
安裝Windows 10時(shí)直接上工具WinNTSetup指派安裝和引導(dǎo)分區(qū),因?yàn)槎嘤脖P情形下,Windows的安裝器總是找不到分區(qū)。

1.4 系統(tǒng)引導(dǎo)修復(fù)
如果合并EFI分區(qū)選擇的是移動(dòng)其他操作系統(tǒng)的引導(dǎo)文件,有可能導(dǎo)致引導(dǎo)不了系統(tǒng)。
對(duì)于Windows,一般的PE系統(tǒng)都帶有引導(dǎo)修復(fù)功能,略。
Ubuntu使用boot repair。
把四葉草(Clover文件夾)復(fù)制到硬盤EFI分區(qū)即可脫離U盤引導(dǎo),使用bootice x64進(jìn)行引導(dǎo)調(diào)整。
修改前注意備份EFI,備用一個(gè)WinPEU盤,防止驅(qū)動(dòng)過程因配置錯(cuò)誤而出現(xiàn)無法進(jìn)入系統(tǒng)的情況出現(xiàn),通過WinPE還原EFI分區(qū)更改,注意不要備份到APFS分區(qū),WinPE是讀不了的。
二、鏡像刻錄與安裝
- Windows環(huán)境下,刻錄鏡像到U盤可在使用TransMac(TransMac的操作),該軟件是收費(fèi)的,但PE環(huán)境下也是可以試用的。
- Mac環(huán)境下使用balenaEtcher
下載鏡像刻錄并安裝,教程已經(jīng)說明很詳細(xì)了,準(zhǔn)備工作完畢后,應(yīng)該就是不斷點(diǎn)下一步的事情。
三、驅(qū)動(dòng)
10.14 安裝引導(dǎo)時(shí)卡加號(hào),300系列主板請(qǐng)于
drivers64UEFI目錄中移除AptioMemoryFix-64.efi,并添加OsxAptioFix2Drv-free2000.efi到drivers64UEFI下,該驅(qū)動(dòng)位于/EFI/CLOVER/drivers64UEFI/OsxAptioFixDrv_Backup目錄下
10.15安裝時(shí)卡最后2分鐘,需要將drivers/off/OsxAptioFixDrv.efi替換掉drivers/UEFI/AptioMemoryFix.efi
下面是硬件驅(qū)動(dòng)資料索引,為了不當(dāng)復(fù)讀機(jī),貼鏈接應(yīng)該足夠了,關(guān)鍵地方補(bǔ)充兩句。
3.1 聲卡驅(qū)動(dòng)
AppleALC驅(qū)動(dòng)地址。
Lilu驅(qū)動(dòng)地址
- 安裝教程其實(shí)已經(jīng)有了,鏈接,就是注入
layout-id的步驟。 - 更新
AppleALC,把驅(qū)動(dòng)拖到Kexts/Other,VSCode打開config.plist搜索layout-id關(guān)鍵字,修改id后重啟即可,AppleALC.kext驅(qū)動(dòng)需配合Lilu.kext。
如果layout-id被注釋為#layout-id,去掉#,搜不到layout-id關(guān)鍵字的參考一下其他plist配置文件。
附聲卡id。
10.15刪除了部分layoutId,不過驅(qū)動(dòng)貌似做了適配,可以不用修改10.14的配置,如ALC269可注入6610.15 常見問題:
Apple在macOS Catalina上刪除的布局ID為:
Layout 1,3,8,9,11,12,13,18,22,23,24,25,26,27,28,29,30,31,32,34,36,37,38,39,41,42,43,44,45,46,47,48,49,50等開機(jī)偶爾掉聲卡問題:
注入?yún)?shù)alcdelay=500,類型為Number
3.2 背光調(diào)節(jié)
由于屏幕亮度瞎眼,需要修復(fù)亮度調(diào)節(jié)。
以下是參考方案:
屏幕亮度調(diào)節(jié)驅(qū)動(dòng)方案:
參考方案一:AppleBacklightFixup
參考方案二:WhateverGreen
以上方式已過時(shí),但還是保留了鏈接,亮度驅(qū)動(dòng)已經(jīng)集成在最新WhateverGreen,但仍然需要注入SSDT-PNLF.aml。
更新到最新WhateverGreen,可降低進(jìn)系統(tǒng)卡進(jìn)度條、卡DEBUG概率。
-
方案一:
下載通用hotpatch補(bǔ)丁,使用maciasl打開SSDT-PNLF.dsl,或者使用WhateverGreen驅(qū)動(dòng)中附帶的SSDT-PNLF.dsl,另存為SSDT-PNLF.aml到CLOVER/ACPI/patched,在CCG里面添加修補(bǔ):
-
方案二:
直接勾上AddPNLF就行了,不過可能出現(xiàn)亮度過暗的情況,可換用上面的方案,最后保存重啟。
-
方案三:
適用于8代U核顯,可解決重啟花屏問題,原文。
只需兩步:
1、添加SSDT-PNLF_CoffeeLake.aml8代U專用修補(bǔ),亮度保存需要配合SSDT-ASL0.aml。
亮度調(diào)節(jié)及保存
2、添加change GFX0 to IGPU補(bǔ)丁,保存重啟。

3.3 亮度記憶
背光修復(fù)后,每次開機(jī)都要調(diào)節(jié)一次,你可能需要:
1、下載Intel 核顯通用補(bǔ)丁,上面下載過的可忽略。
2、另存為SSDT-ALS0.dsl為SSDT-ALS0.aml到CLOVER/ACPI/patched,到CCG添加修補(bǔ):

重啟即可,顯示器偏好會(huì)增加亮度自動(dòng)調(diào)節(jié)的復(fù)選框(沒有實(shí)際作用),重啟后亮度不會(huì)瞎眼。
3.4 核顯
修改前切記備份,配合WhateverGreen.kext驅(qū)動(dòng)核顯,重要,需配合擴(kuò)展驅(qū)動(dòng)Lilu.kext。
先照教程緩沖幀補(bǔ)丁部分做一遍,把生成的plist配置放到config.plist合適的位置,不知道放哪里或替換什么地方的,參考一下其他配置文件。
參考
SMBIOS(機(jī)型設(shè)置)使用的是Macbook Pro 15.1,顯存注入為4095M:
<key>Properties</key>
<dict>
<key>PciRoot(0x0)/Pci(0x2,0x0)</key>
<dict>
<key>AAPL,ig-platform-id</key>
<data>
CQClPg==
</data>
<key>AAPL,slot-name</key>
<string>Internal@0,2,0</string>
<key>device-id</key>
<data>
mz4AAA==
</data>
<key>device_type</key>
<string>VGA compatible controller</string>
<key>disable-external-gpu</key>
<data>
AQAAAA==
</data>
<key>enable-hdmi20</key>
<data>
AQAAAA==
</data>
<key>framebuffer-con1-enable</key>
<data>
AQAAAA==
</data>
<key>framebuffer-con1-type</key>
<data>
AAgAAA==
</data>
<key>framebuffer-con2-enable</key>
<data>
AQAAAA==
</data>
<key>framebuffer-con2-index</key>
<data>
/////w==
</data>
<key>framebuffer-con2-type</key>
<data>
AAgAAA==
</data>
<key>framebuffer-fbmem</key>
<data>
AACQAA==
</data>
<key>framebuffer-patch-enable</key>
<data>
AQAAAA==
</data>
<key>framebuffer-portcount</key>
<data>
AgAAAA==
</data>
<key>framebuffer-stolenmem</key>
<data>
AAAwAQ==
</data>
<key>framebuffer-unifiedmem</key>
<data>
AA/w/w==
</data>
<key>model</key>
<string>Intel UHD Graphics 630 (Mobile)</string>
</dict>
</dict>
出現(xiàn)喚醒后黑屏只有鼠標(biāo)能動(dòng)的,可能是沒有配置輸出接口connectors,勾上緩沖幀輸出接口限制(FB端口數(shù)限制),嘗試重新注入或使用上面的配置試試(UHD630)。
對(duì)于使用獨(dú)顯進(jìn)行外接顯示器信號(hào)輸出的機(jī)型只能安裝Mac OS X 10.13.6,只有10.13支持N卡驅(qū)動(dòng),但筆記本的獨(dú)顯基本上是不能驅(qū)動(dòng)的,部分支持Typc-C擴(kuò)展的筆記本(全功能Typc-C / 雷電3)可嘗試使用Typc-C轉(zhuǎn)HDMI或Typc-C轉(zhuǎn)DP進(jìn)行核顯輸出外屏。

3.5 注入EDID(開啟HIDPI)
驅(qū)動(dòng)顯示器,一般用于外接顯示器,對(duì)于1080P的筆記本的顯示屏不太需要,不驅(qū)動(dòng)沒有太大影響,但驅(qū)動(dòng)了可能會(huì)有副作用!個(gè)人斟酌后使用。
對(duì)于筆電的1080P分辨率,如果覺得字太小瞎眼,分辨率低了又覺得模糊,你可能需要這個(gè)。
Hackintool最新版可能會(huì)坑,用不了的試下舊版。
副作用及解決
喚醒后只有左上角1/4屏幕的,解決方案:
重啟的時(shí)候出現(xiàn)雪花屏,實(shí)際上是重啟回到了登錄界面,等屏幕亮度暗下來,把蓋子合上再打開,多試幾次就沒事了。
可用方案,可解決喚醒1/4屏幕,不需要使用低分辨率:
睡眠喚醒半屏、雪花點(diǎn)閃屏的解決辦法
HIDPI參考鏈接
開啟
1600*900 HIDPI需要添加倍數(shù)分辨率,如3200*1800,本機(jī)型注入iMac Retina Display 16:9
3.6 電量驅(qū)動(dòng)
電量顯示只能通過修改DSDT實(shí)現(xiàn),經(jīng)多次測(cè)試,電量跟Windows顯示有差異,刷新速度也不一樣,只要充電/放電狀態(tài)正確,基本算是驅(qū)動(dòng)成功。
參考資料,這個(gè)帖子已經(jīng)比較容易懂了。
教程中的 backcolor=rgba( 是富文本亂碼,用于標(biāo)識(shí)文字顏色。
附驅(qū)動(dòng)地址,記得把驅(qū)動(dòng)拖到Kexts/Other。
直接附上本機(jī)型的修補(bǔ)源代碼,可以參考一下,看不懂的也可以搬友商機(jī)型的補(bǔ)丁試試。
參考答案
# add method B1B2
into method label B1B2 remove_entry;
into definitionblock code_regex . insert
begin
Method (B1B2, 2, NotSerialized)\n
{\n
Return(Or(Arg0, ShiftLeft(Arg1, 8)))\n
}\n
end;
# patch battery status
# rename 16 variable
into Device label EC0 code_regex XIF1,\s+16, replace_matched begin X0F1,8,X1F1,8, end;
into method label ECBE code_regex \^\^PCI0.LPCB.EC0.XIF1 replaceall_matched begin B1B2(^^PCI0.LPCB.EC0.X0F1,^^PCI0.LPCB.EC0.X1F1) end;
into Device label EC0 code_regex XIF2,\s+16, replace_matched begin X0F2,8,X1F2,8, end;
into method label ECBE code_regex \^\^PCI0.LPCB.EC0.XIF2 replaceall_matched begin B1B2(^^PCI0.LPCB.EC0.X0F2,^^PCI0.LPCB.EC0.X1F2) end;
into method label _BST code_regex \^\^PCI0.LPCB.EC0.XIF2 replaceall_matched begin B1B2(^^PCI0.LPCB.EC0.X0F2,^^PCI0.LPCB.EC0.X1F2) end;
into Device label EC0 code_regex XIF3,\s+16, replace_matched begin X0F3,8,X1F3,8, end;
into method label ECBE code_regex \^\^PCI0.LPCB.EC0.XIF3 replaceall_matched begin B1B2(^^PCI0.LPCB.EC0.X0F3,^^PCI0.LPCB.EC0.X1F3) end;
into Device label EC0 code_regex XIF4,\s+16, replace_matched begin X0F4,8,X1F4,8, end;
into method label ECBE code_regex \^\^PCI0.LPCB.EC0.XIF4 replaceall_matched begin B1B2(^^PCI0.LPCB.EC0.X0F4,^^PCI0.LPCB.EC0.X1F4) end;
into Device label EC0 code_regex XIF7,\s+16, replace_matched begin X0F7,8,X1F7,8, end;
into method label ECBE code_regex \^\^PCI0.LPCB.EC0.XIF7 replaceall_matched begin B1B2(^^PCI0.LPCB.EC0.X0F7,^^PCI0.LPCB.EC0.X1F7) end;
into Device label EC0 code_regex XST0,\s+16, replace_matched begin X0T0,8,X1T0,8, end;
into method label _BST code_regex \^\^PCI0.LPCB.EC0.XST0 replaceall_matched begin B1B2(^^PCI0.LPCB.EC0.X0T0,^^PCI0.LPCB.EC0.X1T0) end;
into Device label EC0 code_regex XST1,\s+16, replace_matched begin X0T1,8,X1T1,8, end;
into method label _BST code_regex \^\^PCI0.LPCB.EC0.XST1 replaceall_matched begin B1B2(^^PCI0.LPCB.EC0.X0T1,^^PCI0.LPCB.EC0.X1T1) end;
into Device label EC0 code_regex XST2,\s+16, replace_matched begin X0T2,8,X1T2,8, end;
into method label _BST code_regex \^\^PCI0.LPCB.EC0.XST2 replaceall_matched begin B1B2(^^PCI0.LPCB.EC0.X0T2,^^PCI0.LPCB.EC0.X1T2) end;
into Device label EC0 code_regex XST3,\s+16, replace_matched begin X0T3,8,X1T3,8, end;
into method label _BST code_regex \^\^PCI0.LPCB.EC0.XST3 replaceall_matched begin B1B2(^^PCI0.LPCB.EC0.X0T3,^^PCI0.LPCB.EC0.X1T3) end;
這種腳本語言變量后面聲明的直接就是占用的比特位數(shù),不用折騰太多。
把代碼保存為*.ASL備用。
怎么用?
第一步:
打開MaciASL ,點(diǎn)擊Patch,把上面代碼粘貼到Patch Text,點(diǎn)擊Apply,上下文本框都變?yōu)榭瞻缀?,表示補(bǔ)丁已經(jīng)打上去了。



替換結(jié)果保存為DSDT.aml,放進(jìn)ACPI/patched,在CCG中添加進(jìn)去:

電量驅(qū)動(dòng)一般步驟
實(shí)在看不懂的看這里,會(huì)有些幫助。
1、提取原始DSDT,在Clover啟動(dòng)界面按下F4即可,提取的文件生成在ACPI/origin。一般都是修改DSDT.aml,打開DSDT.aml,搜索EmbeddedControl,Field塊里定義的變量是需要篩選的變量。

2、篩選、統(tǒng)計(jì)變量。參考格式:
{變量名} {特征文本}
{變量出現(xiàn)的行數(shù)} {特征文本}
如下:
XIF1 XIF1, 16,
53364 Store (^^PCI0.LPCB.EC0.XIF1, Index (PAK0, One))
========================================
XIF2 XIF2, 16,
53365 Store (^^PCI0.LPCB.EC0.XIF2, Index (PAK0, 0x02))
53414 Store (Divide (Multiply (BCAP, 0x64), ^^PCI0.LPCB.EC0.XIF2, ), Local0)
53425 Store (Divide (Multiply (^^PCI0.LPCB.EC0.XST2, 0x64), ^^PCI0.LPCB.EC0.XIF2, ), Local1)
========================================
XIF3 XIF3, 16,
53366 Store (^^PCI0.LPCB.EC0.XIF3, Index (PAK0, 0x03))
========================================
XIF4 XIF4, 16,
53367 Store (^^PCI0.LPCB.EC0.XIF4, Index (PAK0, 0x04))
========================================
XIF7 XIF7, 16,
53369 Store (^^PCI0.LPCB.EC0.XIF7, Index (PAK0, 0x07))
========================================
XST0 XST0, 16,
53406 Store (^^PCI0.LPCB.EC0.XST0, Index (BFB0, Zero))
========================================
XST1 XST1, 16,
53407 Store (^^PCI0.LPCB.EC0.XST1, Index (BFB0, One))
========================================
XST2 XST2, 16,
53410 Store (^^PCI0.LPCB.EC0.XST2, BCAP)
53425 Store (Divide (Multiply (^^PCI0.LPCB.EC0.XST2, 0x64), ^^PCI0.LPCB.EC0.XIF2, ), Local1)
53440 Store (^^PCI0.LPCB.EC0.XST2, BCAP)
53445 Store (^^PCI0.LPCB.EC0.XST2, BCAP)
========================================
XST3 XST3, 16,
53450 Store (^^PCI0.LPCB.EC0.XST3, Index (BFB0, 0x03))
========================================
BST1 BST1, 16,
53403 Store ("BST1 Start", Debug)
53451 Store ("BST1 End", Debug)
像XIF0沒有出現(xiàn)過的就不用修改,也就不用統(tǒng)計(jì),如XIF1出現(xiàn)在53364行,把出現(xiàn)的行數(shù)和該行文本記下來,方便避免重復(fù)記錄,同時(shí)修改時(shí)可以快速定位。
統(tǒng)計(jì)大于8位的變量數(shù)據(jù),8位變量不需要統(tǒng)計(jì),出現(xiàn)次數(shù)為0和未引用的變量也可以排除掉,如上統(tǒng)計(jì)結(jié)果,剩下需要修改的都是16位的變量。
3、編寫正則表達(dá)式,需要一定的程序基礎(chǔ),完全沒有接觸過編程的看下這里體驗(yàn)一下。
Method (ECBE, 0, NotSerialized)
{
Acquire (MUEX, 0xFFFF)
Store ("ECBE", Debug)
Store (^^PCI0.LPCB.EC0.XIF1, Index (PAK0, One))
Store (^^PCI0.LPCB.EC0.XIF2, Index (PAK0, 0x02))
Store (^^PCI0.LPCB.EC0.XIF3, Index (PAK0, 0x03))
Store (^^PCI0.LPCB.EC0.XIF4, Index (PAK0, 0x04))
Store (^^PCI0.LPCB.EC0.XIF7, Index (PAK0, 0x07))
Release (MUEX)
}


根據(jù)統(tǒng)計(jì)結(jié)果,
XIF0被引用若干次,需要拆分,把XIF0 16位變量拆成名為X0F1和X1F1兩個(gè)8位變量。而XIF0在名為EC0的Device對(duì)象作用域里,在該范圍里搜索字符串把符合XIF1,\s+16正則特征的字符組合替換為X0F1,8,X1F1,8,完成拆分。
Scope (_SB.PCI0.LPCB)
{
OperationRegion (DBG8, SystemIO, 0x80, One)
Field (DBG8, ByteAcc, NoLock, Preserve)
{
IO80, 8
}
Device (EC0)
{
....
OperationRegion (ECXP, EmbeddedControl, Zero, 0xFF)
Field (ECXP, ByteAcc, Lock, Preserve)
{
XIF0, 16,
XIF1, 16,
....
into Device label EC0 code_regex XIF1,\s+16, replace_matched begin X0F1,8,X1F1,8, end;
變量被拆分,引用方式也要改變,把對(duì)16位變量的引用轉(zhuǎn)變?yōu)閮蓚€(gè)8位變量通過移位和異或運(yùn)算合成的16位變量,就是把兩個(gè)8位變量傳入函數(shù)B1B2,返回一個(gè)16位數(shù)。
參照變量拆分的方式替換字符,像53440行和53445特征代碼是一樣的,寫一句代碼就能完成兩行文本的替換。
53440 Store (^^PCI0.LPCB.EC0.XST2, BCAP)
53445 Store (^^PCI0.LPCB.EC0.XST2, BCAP)
例如拆分變量XST2和修改其引用方式:
into Device label EC0 code_regex XST2,\s+16, replace_matched begin X0T2,8,X1T2,8, end;
into method label _BST code_regex \^\^PCI0.LPCB.EC0.XST2 replaceall_matched begin B1B2(^^PCI0.LPCB.EC0.X0T2,^^PCI0.LPCB.EC0.X1T2) end;
3.7 觸摸板
驅(qū)動(dòng)項(xiàng)目地址。
觸摸板太復(fù)雜,摸了,折騰不是目的,工作學(xué)習(xí)才是,反正有鼠標(biāo)觸摸板基本不會(huì)用到,直接拿了隔壁機(jī)械革命z2的驅(qū)動(dòng)。
傳送門,里面有修改驅(qū)動(dòng)的方法,2.2版本已經(jīng)原生支持本機(jī)型觸摸板型號(hào),不需要修改驅(qū)動(dòng)了,把VoodooI2C.kext,VoodooI2CHID.kext放到Drivers/Other,使用kext utility重建緩存后重啟即可。


如果不行就把10.14 EFI中的VoodooI2C.kext中的所有info.plist文件配置替換掉新版中的,或者干脆就祖?zhèn)黩?qū)動(dòng)。
參考鏈接
1、http://bbs.pcbeta.com/viewthread-1797378-1-1.html
2、http://bbs.pcbeta.com/viewthread-1805164-1-1.html
3.8 USB驅(qū)動(dòng)
Hackintool教程已經(jīng)有了。
以下是參考:
附上參考鏈接和屑站AV號(hào)av37086786做參考。
驅(qū)動(dòng)項(xiàng)目地址。
主要是整理下思路,
1、添加驅(qū)動(dòng)修補(bǔ)。
修補(bǔ)步驟不一定需要,可直接第三步開始。
Comment: USB port limit patch #1 10.14.x modify by DalianSky(credit ydeng)
Name: com.apple.iokit.IOUSBHostFamily
Find: 83FB0F0F
Replace: 83FB3F0F
MatchOS: 10.14.x
Comment: USB port limit patch #2 10.14.x modify by DalianSky(credit PMHeart)
Name: com.apple.iokit.IOUSBHostFamily
Find: 83E30FD3
Replace: 83E33FD3
MatchOS: 10.14.x
Comment: USB Port limit patch #3 10.14.x modify by DalianSky(credits PMheart)
Name: com.apple.driver.usb.AppleUSBXHCI
Find: 83FB0F0F
Replace: 83FB3F0F
MatchOS: 10.14.x
Comment: USB Port limit patch #4 10.14.x modify by DalianSky(credits PMheart)
Name: com.apple.driver.usb.AppleUSBXHCI
Find: 83FF0F0F
Replace: 83FF3F0F
MatchOS: 10.14.x

2、添加DSDT修補(bǔ):

change XH01 to XHC其實(shí)也是文本替換的意思,替換掉特定排列的ASCII碼。

3、添加-uia_exclude_ss引導(dǎo)參數(shù),重啟

現(xiàn)在的筆記本就只有一條
USB3.x的總線,為了向舊設(shè)備兼容依然對(duì)外保留USB2.0的接口,總線上同一端口有可能被分配到2.0的設(shè)備,也可能分配到3.x的設(shè)備,由于不能區(qū)端口是2.0還是3.x的,需要拆分開兩步進(jìn)行。這步的意義是,重啟后,屏蔽筆記本上
USB 3.0的端口,把你的USB 2.0U盤把筆記本上的USB 2.0接口插一遍,把這些端口的Type標(biāo)記為USB2,這部分端口會(huì)仿冒為蘋果設(shè)備的USB 2.0的端口提交給蘋果系統(tǒng)。
4、添加-uia_exclude_hs,原理同上,上一步已經(jīng)標(biāo)記為USB2的端口會(huì)被排除掉,這次是為了保留部分剩下的端口作為蘋果設(shè)備USB 3.x的端口提交給蘋果系統(tǒng),添加uia_include是為了開后門,保留外接鼠標(biāo)和外接鍵盤需要用到的端口,否則就不容易操作,如果驅(qū)動(dòng)了觸摸板,也可以使用觸摸板和自帶鍵盤完成操作。
5、刪掉沒有用到的端口,刪掉剩下16個(gè)以下即可,導(dǎo)出USBPorts.kext,放進(jìn)EFI,把1、2的修補(bǔ)禁用掉,刪除USBInjectAll.kext,重啟,如果睡眠不秒醒,喚醒正常,表示USB驅(qū)動(dòng)正常,不過重裝系統(tǒng)有可能失效,需要重新搞一遍。
若保留USBInjectAll.kext,需要把生成的SSDT-USBX.aml,SSDT-UIAC.aml等若干aml文件使用CCG注入,這樣子就不需要USBPorts.kext了。
3.9 無線網(wǎng)卡
把英特爾的無線網(wǎng)卡換下來。
安裝鏡像自帶DW1560/DW1820A藍(lán)牙驅(qū)動(dòng)。
10.14版本驅(qū)動(dòng)方案,鏈接。
10.15.7 WIFI:
AirportBrcmFixup.kext
BrcmFirmwareData.kext
BrcmPatchRAM3.kext
10.15下藍(lán)牙失效:
藍(lán)牙驅(qū)動(dòng)
把BrcmPatchRAM3.kext和BrcmFirmwareData.kext拖到/Library/Extensions目錄,把BrcmBluetoothInjector.kext拖到Kexts/Other下面。
Macos10.15下DW1830、DW1560 藍(lán)牙解決方案
macOS Catalina 10.15安裝中常見的問題及解決方法
3.10 傳感器
-
FakeSMC.kext
更新FakeSMC(蘋果硬件仿冒驅(qū)動(dòng)),項(xiàng)目地址,里面有傳感器驅(qū)動(dòng)。
不過建議還是用鏡像EFI文件夾的內(nèi)置傳感器的驅(qū)動(dòng)?EFI?/CLOVER?/?kexts?/?Other/FakeSMC_v1800_with_Sensors.kext?,替換掉Other文件夾的FakeSMC_v1800.kext。
重啟。
這樣就能查看CPU溫度了,不然只能查看硬盤溫度。
iStat Menus -
VirtualSMC.kext
FakeSMC.kext替代品,但不是很穩(wěn)定,使用新版有翻車可能,非剛需不建議折騰。
執(zhí)行替換操作前最好進(jìn)行備份,謹(jǐn)防翻車。
1、干掉
kexts/Other/ACPIBatteryManager.kext和kexts/Other/FakeSMC.kext,把驅(qū)動(dòng)Kexts目錄下的所有驅(qū)動(dòng)拖到kexts/Other中。
2、找到SMCHelper.efi,干掉,替換為VirtualSmc.efi。替換后用
iStat能顯示電池生產(chǎn)日期。但檢查CPU 頻率可能需要額外安裝Intel Power Gadget,靈異的是裝上后某些應(yīng)用可能不能正常運(yùn)行,如夜神/mumu模擬器等,卸載后一切正常。
HWMonitor監(jiān)測(cè)效果。

3.11 改鍵
快捷鍵改為Windows形式,可以適配大部分程序,某些鍵不能單獨(dú)使用,因此不能完全適配。
下載Karabiner,設(shè)置鍵位映射。

改掉聚焦,改為
Alt+Tab,盡可能保留習(xí)慣。
然后修改輸入法快捷鍵,按Ctrl+空格可以流暢切換搜狗和英文輸入。

其他常用快捷鍵,以改鍵后為準(zhǔn):
-
Ctrl+Shift+Num3全屏截圖 -
Ctrl+Shift+Num4局部截圖 -
Ctrl+A全選 -
Ctrl+C復(fù)制(mac叫拷貝) -
Ctrl+V粘貼 -
Ctrl+Win+V剪切 -
Ctrl+Z撤銷 -
Ctrl+Shift+Z恢復(fù)(相當(dāng)于Win下Crtl+Y) -
Ctrl+Tab前臺(tái)切換(相當(dāng)于Win下Alt+Tab)










