diosra2’s blog

iOSのJailbreak、ダウングレード

ノートパソコンでHackintoshの夢。(macOS Catalina 10.15.4)



今回は、余っていたノートPCで最新macOSであるCatalina(10.10.5)をHackintoshしてみました。(Windows 10とのデュアルブート)

Hackintoshの夢を見る場合、自作PCにインストールすることが主流なようですが、今回はメーカー品を使用しているので、自由にパーツを選んだりすることは基本的にできません。その制約の中で作成してみましたので、一例として紹介します。

警告

Hackintoshは全てにおいて自己責任です。これはメーカー品を使用した場合、その購入メーカーからのサポートが一切受けられなくなることを意味しています。

環境

dynabook RZ83/C

CPU: Intel Core i7 - 7500U

メモリ: 8 GB DDR4

iGPU: Intel HD Graphics 620

用意したもの

USB 3.0 外付けHDD (1TB)

USBメモリ (8GB)

小型無線LAN子機 WDC-150SU2M

Windows 10 Proのインストールメディア

Hackintoshする

準備

まずはmacOSを使用してCatalinaのインストーラーを作成する必要があります。(すでにHackintoshがある場合はそちらでもOK)

ディスクユーティリティを使用してインストーラー作成

App StoreからCatalinaのインストールappをインストールして、外付けHDDにインストールします。

Catalinaではインストールディスクが8GBを超えているため、USB(2.0)メモリをしようすると非常に遅いです。そのため、ここではあえてHDDを使用します

ディスクユーティリティを使用し、HDDをフォーマットします。ディスクはGUIDパーティションマップ、フォーマットはHFS Plusで16 GB程度の容量を確保します。

Terminalで以下コマンドを入力し、先ほど確保したパーティションにインストールディスクを作成します。

sudo /Applications/Install\ macOS\ Catalina.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume

また、Hackintoshする側のPCではWin10から内蔵SSDパーティションを分割しておきます。

ブートローダー

ブートローダーにはClover (v5111)を、上記HDDとは別に用意したUSBにインストールしました。(理由は後述)

USBは上記HDDと同様に、GUID partition map、HFS Plusでフォーマットします。

UEFIブート用にインストール、ESPにインストールを選択し、2枚目のようにドライバーをインストールします。ここで本物macにcloverをインストールするとまずいので、必ずUSBにインストールしてください。

cloverのインストールが終わったらEFI領域がマウントされます。続いて"/EFI/CLOVER/kexts/Other"に以下のkextをインストールします。

  • AppleALC
  • EnableLidWake
  • IntelMausi
  • lilu
  • SMCBatteryManager
  • SMCLightSensor
  • SMCProcessor
  • SMCSuperIO
  • USBInjectAll
  • VirtualSMC
  • VoodooInput
  • VoodooPS2Controller
  • WhateverGreen
  • XHCI-unsupported
  • 太字はVirtualSMCです。(FakeSMCで代替も可)

    続いて、"/EFI/CLOVER/config.plist"を編集します。

  • ACPI
  •     
            <key>DSDT</key>
            <dict>
            <key>Fixes</key>
            <dict>
            <key>AddMCHC</key>
            <true/>
            <key>FixHPET</key>
            <true/>
            <key>FixIPIC</key>
            <true/>
            <key>FixRTC</key>
            <true/>
            <key>FixShutdown</key>
            <true/>
            <key>FixTMR</key>
            <true/>
            </dict>
            <key>Patches</key>
            <array>
            <dict>
            <key>Comment</key>
            <string>change XHCI to XHC</string>
            <key>Disabled</key>
            <false/>
            <key>Find</key>
            <data>WEhDSQ==</data>
            <key>Replace</key>
            <data>WEhDXw==</data>
            </dict>
            <dict>
            <key>Comment</key>
            <string>change XHC1 to XHC</string>
            <key>Disabled</key>
            <false/>
            <key>Find</key>
            <data>WEhDMQ==</data>
            <key>Replace</key>
            <data>WEhDXw==</data>
            </dict>
            <dict>
            <key>Comment</key>
            <string>change SAT0 to SATA</string>
            <key>Disabled</key>
            <false/>
            <key>Find</key>
            <data>U0FUMA==</data>
            <key>Replace</key>
            <data>U0FUQQ==</data>
            </dict>
            <dict>
            <key>Comment</key>
            <string>change HDAS to HDEF</string>
            <key>Disabled</key>
            <false/>
            <key>Find</key>
            <data>SERBUw==</data>
            <key>Replace</key>
            <data>SERFRg==</data>
            </dict>
            </array>
            </dict>
            <key>DropTables</key>
            <array>
            <dict>
            <key>Signature</key>
            <string>DMAR</string>
            </dict>
            <dict>
            <key>Signature</key>
            <string>MATS</string>
            </dict>
            </array>
            <key>FixHeaders</key>
            <true/>
            <key>HaltEnabler</key>
            <false/>
            <key>SSDT</key>
            <dict>
            <key>Generate</key>
            <dict>
            <key>PluginType</key>
            <true/>
            </dict>
            </dict>
        
    


  • Boot
  •     
            <key>Arguments</key>
            <string>-v</string>
            <key>DefaultVolume</key>
            <string>LastBootedVolume</string>
            <key>Timeout</key>
            <integer>30</integer>
            <key>XMPDetection</key>
            <string>Yes</string>
        
    


  • Devices
  •     
            <key>Properties</key>
            <dict>
            <key>PciRoot(0x0)/Pci(0x1F,0x3)</key>
            <dict>
            <key>AAPL,slot-name</key>
            <string>Internal@0,31,3</string>
            <key>device-id</key>
            <data>cKEAAA==</data>
            <key>device_type</key>
            <string>Audio device</string>
            <key>layout-id</key>
            <data>AwAAAA==</data>
            <key>model</key>
            <string>Sunrise Point-LP HD Audio</string>
            </dict>
            <key>PciRoot(0x0)/Pci(0x2,0x0)</key>
            <dict>
            <key>AAPL,ig-platform-id</key>
            <data>AAAWWQ==</data>
            <key>device-id</key>
            <data>
            FlkAAA==
            </data>
            <key>framebuffer-patch-enable</key>
            <data>AQAAAA==</data>
            <key>framebuffer-stolenmem</key>
            <data>AAAwAQ==</data>
            <key>framebuffer-unifiedmem</key>
            <data>AAAAYA==</data>
            </dict>
            </dict>
            <key>USB</key>
            <dict>
            <key>FixOwnership</key>
            <true/>
            </dict>
        
    


  • GUI
  •     
            <key>Scan</key>
            <dict>
            <key>Entries</key>
            <true/>
            <key>Tool</key>
            <true/>
            </dict>
            <key>Theme</key>
            <string>embedded</string>
        
    


  • Graphics
  •     
            <key>Inject</key>
            <true/>
        
    


  • KernelAndKextPatches
  •     
            <key>AppleIntelCPUPM</key>
            <false/>
            <key>KernelPm</key>
            <true/>
            <key>KextsToPatch</key>
            <array>
            <dict>
            <key>Comment</key>
            <string>Port limit increase</string>
            <key>Disabled</key>
            <false/>
            <key>Find</key>
            <data>g710////EA==</data>
            <key>InfoPlistPatch</key>
            <false/>
            <key>MatchOS</key>
            <string>10.12.x</string>
            <key>Name</key>
            <string>com.apple.driver.usb.AppleUSBXHCI</string>
            <key>Replace</key>
            <data>g710////Gw==</data>
            </dict>
            <dict>
            <key>Comment</key>
            <string>Port limit increase (RehabMan)</string>
            <key>Disabled</key>
            <false/>
            <key>Find</key>
            <data>g32IDw+DpwQAAA==</data>
            <key>InfoPlistPatch</key>
            <false/>
            <key>MatchOS</key>
            <string>10.13.x</string>
            <key>Name</key>
            <string>com.apple.driver.usb.AppleUSBXHCI</string>
            <key>Replace</key>
            <data>g32ID5CQkJCQkA==</data>
            </dict>
            <dict>
            <key>Comment</key>
            <string>Port limit increase (Ricky)</string>
            <key>Disabled</key>
            <false/>
            <key>Find</key>
            <data>g/sPD4OPBAAA</data>
            <key>InfoPlistPatch</key>
            <false/>
            <key>MatchOS</key>
            <string>10.14.x</string>
            <key>Name</key>
            <string>com.apple.driver.usb.AppleUSBXHCI</string>
            <key>Replace</key>
            <data>g/sPkJCQkJCQ</data>
            </dict>
            <dict>
            <key>Comment</key>
            <string>External icons patch</string>
            <key>Disabled</key>
            <false/>
            <key>Find</key>
            <data>RXh0ZXJuYWw=</data>
            <key>InfoPlistPatch</key>
            <false/>
            <key>Name</key>
            <string>AppleAHCIPort</string>
            <key>Replace</key>
            <data>SW50ZXJuYWw=</data>
            </dict>
            </array>
        
    


  • RtVariables
  •     
            <key>BooterConfig</key>
            <string>0x28</string>
            <key>CsrActiveConfig</key>
            <string>0x3E7</string>
            <key>MLB</key>
            <string>xxxxxxxxxxxxxxxx</string>
            <key>ROM</key>
            <string>UseMacAddr0</string>
        
    


  • SMBIOS
  •     
            <key>BoardSerialNumber</key>
            <string>xxxxxxxxxxxxxxxx</string>
            <key>ProductName</key>
            <string>MacBookPro14,1</string>
            <key>SerialNumber</key>
            <string>XXXXXXXX</string>
            <key>SmUUID</key>
            <string>VVVV-WWWW-XXXX-YYYY-ZZZZZZZZZZZZ</string>
        
    


  • SystemParameters
  •     
            <key>InjectKexts</key>
            <string>Yes</string>
            <key>InjectSystemID</key>
            <true/>
        
    


    UUIDはuuidgenで生成したもので、上記を上書きしてください。

    また、SMBIOSの値はmacserialを使用して出た値を使用することができます。機種はMacBookPro14,1かMacBookPro14,2で大丈夫かと思います。

    macserial -a | grep -i MacBookPro14,1
    PC側のUEFIを設定

    SecureBootや、Windowsに関わる設定を全て無効にします。

    起動準備は全て整いました。

    macOSのインストール

    インストールHDDとBoot用USBをPCに接続し、F12を押しながらPCを起動します。BootManagerからUSBを選択し、cloverを起動。Catalinaのインストールディスクをブートします。

    ディスクユーティリティを開き、Windows側で分割した、内蔵SSDの空パーティションをAPFSでフォーマットします。

    そして、フォーマットしたパーティションにmacOSをインストールします。途中で何度か再起動しますが、その度にcloverを起動してブートしてください。

    インストールが成功すればmacOSが起動可能になります。

    macOSのブート

    この時点では内蔵SSDにはブートローダーがないので、インストールディスクをインストールした時と同様にUSBブートをしてmacOSを起動します。

    cloverを内蔵SSDにインストールするとWindowsブートマネージャーを壊すので、以下のようにブートローダーを設置することで回避しました。

    Catalinaが起動したら、Hackintoolを使用してUSBのEFIと内蔵SSDのESPをマウント。

    USBから内蔵SSDに、以下のようにブートローダーをコピー。

    USB内のEFI(/Volumes/EFI) -> 内蔵SSDのESP(/Volumes/ESP)

    /Volumes/EFI/EFI/CLOVER -> /Volumes/ESP/EFI/CLOVER

    /Volumes/EFI/BOOT/BOOTX64.efi -> /Volumes/ESP/EFI/custom/BOOT/BOOTX64.efi

    Windows10のインストールメディアを起動、コマンドプロンプトからbcdeditを使用して、ブートマネージャーにEFI/custom/BOOT/BOOTX64.efiを追加します。

    これで、以下のようにBoot Managerからcloverを選択可能になります。

    Windows Boot Managerを最上位、その下にclover(上記画像ではhackintosh)を割り当てることで、通常起動ではWin10Proが、F12を押してcloverを起動すればCatalinaがブートできるようになります。

    cloverをアップデートする場合はブートローダー用EFIを先に更新し、その後で内蔵SSDのESPに手動でコビーすることで共存しながらアップデートをかけることができます。

    Wi-Fiの設定

    内蔵のWi-FiはIntel製なので使えません。ノートPCで無線通信できないのはちょっと使い物にならないので、無線LAN子機をUSB接続して使うようにしましょう。

    安かったのでELECOMのWDC-150SU2Mを購入してみました。公式サポートは10.10(yosemite)で終わっていますが、こういうものは中身が似たような他社製品のドライバーが使用できたりします。この製品ではTP-Linkのドライバーが、10.15環境でも使用できました。

    f:id:diosra2:20200415005750p:plain

    まぁ夢ですよね。


    Copyright (C) 2017-2018 Diosra2. All Rights Reserved.