黑蘋果安裝導(dǎo)引(火影地獄火x6 i7-8750H)

機(jī)型火影地獄火x6,同模具的機(jī)型還有機(jī)械革命z2,機(jī)械師F117,CPU是Coffee Lake i7-8750H,系統(tǒng)版本macOS Catalina 10.15.7

EFI 435b

OpenCore遷移

一、準(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)DW1830BCM 94360)、DW1560BCM 94352z),DW1830比較寬,你的機(jī)器可能位置不夠裝不上,所以直接DW1560最省事,TB上的一般都是品牌筆記本拆機(jī)的,買聯(lián)想的最省事(現(xiàn)基本滅絕),XPS的可能不兼容你的主板,如表現(xiàn)為Windows 10下工作突發(fā)性死機(jī)。

聯(lián)想BCM 94352z

1.3 分區(qū)

你可能需要重裝你的所有系統(tǒng),為了避免把硬盤格掉了裝,裝了再格掉的情況出現(xiàn),你需要了解:
1、算算系統(tǒng)分區(qū)需要多少。
2、macOS要求格式為APFS,即便你格式化為HFS+也會(huì)給你轉(zhuǎn)過去,由于蘋果原生不能寫NTFS,應(yīng)預(yù)留一定空間格式化為exFATFAT64)/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就沒有什么事了。

EFI分區(qū),可格式化為FAT32

保留一個(gè)MSR分區(qū)

安裝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盤可在使用TransMacTransMac的操作),該軟件是收費(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.efidrivers64UEFI下,該驅(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可注入66

10.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.amlCLOVER/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ǔ)丁,保存重啟。

CCG自帶常用修補(bǔ)

3.3 亮度記憶

背光修復(fù)后,每次開機(jī)都要調(diào)節(jié)一次,你可能需要:
1、下載Intel 核顯通用補(bǔ)丁,上面下載過的可忽略。
2、另存為SSDT-ALS0.dslSSDT-ALS0.amlCLOVER/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)HDMITypc-C轉(zhuǎn)DP進(jìn)行核顯輸出外屏。

小米Air i5-8250u(UHD620) Typc-C轉(zhuǎn)DP核顯外屏輸出

3.5 注入EDID(開啟HIDPI)

驅(qū)動(dòng)顯示器,一般用于外接顯示器,對(duì)于1080P的筆記本的顯示屏不太需要,不驅(qū)動(dòng)沒有太大影響,但驅(qū)動(dòng)了可能會(huì)有副作用!個(gè)人斟酌后使用。
對(duì)于筆電的1080P分辨率,如果覺得字太小瞎眼,分辨率低了又覺得模糊,你可能需要這個(gè)。
Hackintool最新版可能會(huì)坑,用不了的試下舊版。

副作用及解決

喚醒后只有左上角1/4屏幕的,解決方案:

  • 參考這里,可以湊合用,被權(quán)限掉的看這里,安裝RDM后可以選擇分辨率。

  • 把筆記本蓋合上幾次就好了。
  • 換用分辨率1424x802,倍數(shù)為2848x1604。
    垂直分辨率不大于900

重啟的時(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)打上去了。

打補(bǔ)丁前

預(yù)覽替換結(jié)果,點(diǎn)擊Complie看有沒有編譯錯(cuò)誤
替換后

替換結(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位變量拆成名為X0F1X1F1兩個(gè)8位變量。而XIF0在名為EC0Device對(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重建緩存后重啟即可。

顯示檢測(cè)不出來但仍然可以使用,顯示需要需要配合傳感器驅(qū)動(dòng)如VirtualSMC

優(yōu)先嘗試使用新版驅(qū)動(dòng)

如果不行就把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
如果定制完畢,可以把Disabled勾上不啟用

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

同上,由于機(jī)器已經(jīng)定制過驅(qū)動(dòng),就不需要啟用了

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.amlSSDT-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.kextBrcmFirmwareData.kext拖到/Library/Extensions目錄,把BrcmBluetoothInjector.kext拖到Kexts/Other下面。

Macos10.15下DW1830、DW1560 藍(lán)牙解決方案

macOS Catalina 10.15安裝中常見的問題及解決方法

DW1820A/BCM94350ZAE/BCM94356ZEPA50DX插入的正確姿勢(shì)

BCM94352HMB

BrcmBluetoothInjector

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.kextkexts/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è)效果。

HWMonitor

3.11 改鍵

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

黑果沒有Command鍵,也沒有F13~F15

改掉聚焦,改為Alt+Tab,盡可能保留習(xí)慣。
聚焦默認(rèn)快捷鍵與Windows輸入法呼出快捷鍵沖突

然后修改輸入法快捷鍵,按Ctrl+空格可以流暢切換搜狗和英文輸入。

修改為左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)于WinCrtl+Y
  • Ctrl+Tab 前臺(tái)切換(相當(dāng)于WinAlt+Tab
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容