Skip to content

About

A super simple script to automate hardware drivers setup for Microsoft Windows on older Apple Macintosh computers

Resources

Stars

0 stars

Watchers

0 watching

Forks

 
 

Repository files navigation

BetterCamp — MacBook Pro 2012・Mac mini 2018 / Windows 11

MacBook Pro 2012にインストール済みのWindows 11から、PowerShellの1行またはStart-BetterCamp.cmdでMacBookPro9,2用ドライバーとUEFI音声パッチを導入する版です。Pythonのインストールは不要です。

vinaypundith/bettercamp の2026-07-04時点の最新 main(b2bd633675116ef489f8cd76ae82ba0fb22f8d16)を基に改修しています。確認日: 2026-09-29。

起動方法

Windows 11でPowerShellを開き、次の1行を貼り付けてEnterを押します。リポジトリのZIP保存・展開は不要です。

irm https://raw.githubusercontent.com/snchngny/bettercamp/9adc1f1524ef8397978d45c9b2db8edd2a4aa8b1/run.ps1 | iex

管理者権限を求めるWindowsの画面で「はい」を選びます。必要なデバイスドライバーを順番に導入した後、Windowsを再起動してください。

ブラウザーからファイルを手動ダウンロードしたくない、という意味での「ダウンロード不要」です。起動用ファイルは一時フォルダーへ自動取得して終了時に削除します。Boot Campドライバーが未導入なら、約925MBのApple公式パックの通信取得は必要です。インターネット通信も一切使えない場合は、後述のオフライン手順を使ってください。

PowerShellへ貼り付ける方式を使いたくない場合だけ、ZIPをダウンロードして展開し、Start-BetterCamp.cmdをダブルクリックします。

ドライバーがなければ、Apple公式サイトから約925MBの対応パックを取得・展開します。インターネット接続と、ダウンロード・展開用に数GBの空き容量が必要です。Wi-Fiがまだ使えない場合は有線接続か、次のオフライン手順を使ってください。

このツールはWindows自体をインストールするものではありません。macOSからは実行できません。AppleはこのMacでのWindows 11を公式サポートしていません。新ランチャーの機械検証は実施済みですが、MacBook Pro実機でのドライバー導入・音声・再起動は未検証です。

対象機種

機種ID 主なモデル
MacBookPro9,1 15インチ Mid 2012(診断のみ)
MacBookPro9,2 13インチ Mid 2012(ドライバー・音声パッチ対応)
MacBookPro10,1 Retina 15インチ Mid 2012系(診断のみ)
MacBookPro10,2 Retina 13インチ Late 2012系(診断のみ)
Macmini8,1 Mac mini 2018(内蔵Bluetoothコード10診断のみ)

64-bit Windows 11(build 22000以上)を確認してから起動します。ドライバーの自動導入と同梱DSDTは、元プロジェクトで実機確認されたMacBookPro9,2だけに限定しています。ほかのMacや一般のPCではインストーラーを起動しません。

Mac mini 2018の内蔵Bluetooth診断

Macmini8,1でBroadcom Serial Bus Driver over UART Bus Enumerator(ACPI\BCM2E7C\1)がコード10になった場合の状態確認に使います。互換性のためコマンド名は-RepairBluetoothのままですが、ドライバーやWindows設定は変更しません。

& ([scriptblock]::Create((irm https://raw.githubusercontent.com/snchngny/bettercamp/9adc1f1524ef8397978d45c9b2db8edd2a4aa8b1/run.ps1))) -RepairBluetooth

実機ではBroadcom 12.0.1.879からApple配布版12.0.1.874への変更、UHE 12.0.1.870、Intel UART 30.100.2132.2を確認しましたが、再起動後も内蔵Bluetooth無線は復帰しませんでした。そのため自動変更は行いません。Bluetoothを使わない場合、このコード10はそのままでも音声、Wi-Fi、GPU、SSDには影響しません。Bluetoothが必要な場合は、Windows Updateの「現在のWindowsを再インストール(アプリ、ファイル、設定を保持)」を次の候補として手動で検討してください。

Boot Camp Managerを入れない理由

通常のBootCamp\setup.exeはデバイスドライバーだけでなく、Boot Camp Manager、Boot Camp Control Panel、Apple Software Update、常駐処理もまとめて導入します。この版はsetup.exeとBootCamp.msiを実行せず、MacBookPro9,2に必要なApple・Intel・Broadcom・Cirrusのドライバーインストーラーを1個ずつ順番に実行します。

そのためBoot Camp Managerの常駐や古いApple Software Updateは追加されません。Boot Camp Control Panelが提供する起動ディスク切替なども入りません。macOSへの切替は起動時のOptionキーを使ってください。

以前の版で一括セットアップを実行済みの場合、次の救済コマンドはBoot Camp ManagerとControl PanelのMSIを対話表示付きでアンインストールします。Apple Software Updateも削除を試みますが、そちらだけ失敗してもBoot Campの削除は完了扱いにします。導入済みのデバイスドライバーと音声パッチは残します。MSIエラー時は%LOCALAPPDATA%\BetterCamp\logsに詳細ログを保存します。

& ([scriptblock]::Create((irm https://raw.githubusercontent.com/snchngny/bettercamp/9adc1f1524ef8397978d45c9b2db8edd2a4aa8b1/run.ps1))) -CleanupBootCamp

手元のドライバー・最新版を使う

Boot Campドライバーの最新版と、このリポジトリの最新版は別です。 Appleは最新のWindowsサポートソフトウェアの取得にBoot Campアシスタントを案内しています。

そのMacのmacOSでBoot Campアシスタント → メニューバー「アクション」→「Windowsサポートソフトウェアをダウンロード」を選び、取得した BootCamp フォルダーを以下の位置へコピーしてください。コピーしたものを自動取得より優先します。

bettercamp-main/
  Start-BetterCamp.cmd
  bettercamp.ps1
  scripts/
  BootCamp/
    BootCamp.xml
    setup.exe
    Drivers/

任意の場所やUSB上に置く場合は、PowerShellで次のように指定できます。

.\Start-BetterCamp.cmd -BootCampPath "D:\WindowsSupport\BootCamp"

手元にない場合の自動取得は、2012年モデルを対象に含む Boot Camp 5.1.5621 です。これはAppleのアーカイブ版であり、最新ドライバーと称するものではありません。5.1より古いパックは受け付けません。ダウンロード先は %LOCALAPPDATA%\BetterCamp\downloads です。取得ごとに別フォルダーを使うため、再利用時は表示されたパスを -BootCampPath に渡してください。

オフラインの場合は、別PCでApple公式の配布ページからZIPを取得・展開し、上記の BootCamp フォルダーをUSB経由で渡せます。古い証明書の検証に失敗した場合は、Windowsの時計とインターネット接続を確認してください。

診断・ダウンロードのみ

インストールせず機種・Windowsビルド・GPU・起動方式を確認:

.\Start-BetterCamp.cmd -Diagnose

ファイルを保存していない場合は次の1行で診断できます。acpitabl.datのhashに加え、Windowsが実際に読み込んだDSDTのOEM revisionとhashも表示します:

& ([scriptblock]::Create((irm https://raw.githubusercontent.com/snchngny/bettercamp/9adc1f1524ef8397978d45c9b2db8edd2a4aa8b1/run.ps1))) -Diagnose

対応MacBook上で取得・署名検証だけ実行:

.\Start-BetterCamp.cmd -DownloadOnly

ログは %LOCALAPPDATA%\BetterCamp\logs に保存します。診断はログファイルを作成しません。失敗時は画面のエラーとログを確認し、成功と表示されるまで再起動後の動作確認を完了扱いにしないでください。

UEFI音声パッチ

MacBookPro9,2をUEFI起動している場合、通常の1行起動で次も自動実行します。

  1. 同梱dsdt_2012.amlのSHA-256を検証
  2. Windowsがファームウェア側より確実に新しい版として選べるOEM revisionのDSDTを生成し、ACPI checksumを再計算
  3. bcdeditでWindowsのテスト署名モードを有効化
  4. 音声修正済みDSDTをMicrosoft公式の%SystemRoot%\System32\acpitabl.datとして配置
  5. Boot Camp Managerを除外して個別デバイスドライバーを導入

変更は再起動後に有効になります。テスト署名モードではデスクトップに「テスト モード」の表示が出ます。MicrosoftはACPIテーブル上書きを開発・テスト用とし、起動不能になる可能性を警告しています。実行前にWindows回復環境またはmacOSからWindowsボリュームへアクセスできる状態を用意してください。Secure Bootが有効な場合は適用を停止します。

すでにBoot Campドライバーを導入済みで、音声パッチだけ適用する場合:

& ([scriptblock]::Create((irm https://raw.githubusercontent.com/snchngny/bettercamp/9adc1f1524ef8397978d45c9b2db8edd2a4aa8b1/run.ps1))) -AudioPatchOnly

元へ戻す場合。登録したDSDTを削除し、BetterCampが今回有効にした場合だけテスト署名モードも無効にします:

& ([scriptblock]::Create((irm https://raw.githubusercontent.com/snchngny/bettercamp/9adc1f1524ef8397978d45c9b2db8edd2a4aa8b1/run.ps1))) -RemoveAudioPatch

MacBookPro9,1、MacBookPro10,1、MacBookPro10,2には同じDSDTを自動適用しません。元READMEでの2012年実機確認がMacBookPro9,2だけで、機種固有ACPIの横断利用を確認できないためです。-Diagnoseで機種IDを確認できます。Boot Camp導入だけにする場合は-SkipAudioPatchを指定できます。

High Definition Audio Controllerがコード10の場合

初期版は同梱DSDTを元のOEM revisionのまま登録していました。Microsoftの仕様では、レジストリから読み込むACPI tableはファームウェア内の同じtableより高いversionでなければ採用されません。ASLが登録成功を返しても、再起動時に置換DSDTが選ばれず、Intel High Definition Audio Controllerがコード10のまま残る場合があります。

次の修復コマンドは、検証済みDSDTの処理内容を変えずOEM revisionとchecksumだけを更新し、Microsoftが案内する%SystemRoot%\System32\acpitabl.datとして起動時に読み込ませます。異なる既存acpitabl.datは上書きしません。テスト署名は再起動後に有効になるため、同じ実行中のasl /loadtableには依存しません。続けてMacBookPro9,2のCirrus CS4206ドライバーを入れ直してデバイスを再スキャンします。完了後の再起動が必須です。

& ([scriptblock]::Create((irm https://raw.githubusercontent.com/snchngny/bettercamp/9adc1f1524ef8397978d45c9b2db8edd2a4aa8b1/run.ps1))) -RepairAudio

Legacy BIOS起動ではDSDTを変更しません。-RepairAudioはCode 10のIntel HDA controllerだけを削除・再検出し、Cirrus driverを再導入します。完了後は再起動ではなくWindowsを完全にシャットダウンし、20秒待ってから電源を入れてください。

再起動後もコード10なら、デバイスマネージャーの対象デバイスで「詳細」→「ハードウェアID」を確認してください。PCI\VEN_8086ならCirrus endpointではなくIntel HDA controllerの初期化失敗です。HDAUDIO\FUNC_01&VEN_1013&DEV_4206ならCirrus CS4206です。別IDへ別機種用INFを強制適用しないでください。

PCI\VEN_8086&DEV_1E20はIntel Panther Point HDA controllerです。MacBook Pro 2012の類似事例では、BIOS互換起動時はCirrus endpointがHDAUDIO\FUNC_01&VEN_1013&DEV_4206として見え、UEFI直接起動時はDEV_1E20がCode 10になるという一致した報告があります。この状態では下流のCirrus driverだけを入れ直してもcontrollerが開始しないため直りません。

-DiagnoseはレジストリのPEFirmwareTypeに加えて、現在のBCD entryがwinload.efiかwinload.exeかを表示します。Microsoftの対応はwinload.efiがUEFI、winload.exeがBIOSです。両者が食い違う場合、音声修復は現在実行中のWindows loaderを優先します。これはPEFirmwareTypeがBIOSを示しても、実際にwinload.efiで動作するMacBookPro9,2でUEFI用DSDT修復が誤ってskipされるのを防ぎます。

旧 bettercamp.py、bettercamp2.py、fix9400.py、bclaunch_test.ps1 は新しい起動入口ではありません。 上流の履歴・素材として保持していますが、直接実行しないでください。

改修内容と検証

  • Python・WMIC依存の起動手順をWindows標準のPowerShell 5.1へ置換
  • 実機の機種IDをCIMで取得し、対象モデルとWindows 11を確認
  • 管理者昇格、空白・角括弧・アポストロフィを含むパス、終了コードを処理
  • BootCamp.xml をXMLとして読み、行番号に依存しないバージョン確認
  • Apple公式ZIPの取得、Appleのインストーラー署名確認、ログ保存
  • BootCamp\setup.exe、BootCamp.msi、Apple Software Updateを除外したMacBookPro9,2用個別ドライバー導入
  • MacBookPro9,2 UEFI環境のテスト署名設定、DSDT音声パッチ、状態記録と復旧
  • ACPI overrideが採用される高いOEM revisionとchecksumの決定的生成、コード10修復入口
  • 既存Boot Camp Manager/Control Panel/Apple Software Updateだけを除去する救済入口
  • 複数のインストーラーを同時に起動せず、完了まで待機

Windows PowerShell 5.1での回帰テスト:

powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\tests\Test-BetterCamp.ps1

テストは機種判定、パス、XML、署名エラー、終了コード、診断入口、音声パッチ適用・失敗時のロールバック・削除を確認し、実際のドライバーや起動設定を変更しません。診断テストの機種、ACPI、BCD、デバイスは隔離した模擬値で、開発PCのMac mini 2018をMacBook Pro 2012の実機検証には使っていません。GitHub Actionsでも同じテストを実行します。

出典・既存手段との比較

Apple公式パック内の個別ドライバーインストーラーを使い、独自ドライバーや配布基盤は追加していません。Boot Campアシスタントは最新の機種別パックの取得元として優先し、Windows側だけで起動できる入口をこの改修で補います。Apple公式の通常手順はsetup.exeによる一括導入ですが、Windows 11上で旧Boot Camp Managerを常駐させないため、この版では採用していません。Brigadierによる動的取得も候補ですが、追加の実行ファイル・展開依存を増やさずに済むApple公式ZIPを予備の取得元としました。新しいドライバーを自作・更新したものではありません。

上流のコード・同梱素材・クレジットを保持したForkです。上流にはリポジトリ全体のLICENSEファイルがないため、このForkで第三者素材の利用許諾を新たに付与するものではありません。Appleのドライバーパックはリポジトリに含めず、公式配布元から取得します。

About

A super simple script to automate hardware drivers setup for Microsoft Windows on older Apple Macintosh computers

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages