いんくらyochさんの日記

興味あることの忘備録

SMCのフラッシュ

セキュリティーアップデートを掛けたらSMCバイパスモードでしか起動しなくなったMBAのSMCをフラッシュしてみた。
フラッシュにてバイパスしなくても起動できるようになった。
【手順】

  1. AppleのサイトよりSMCアップデートのファイルをDL
  2. DLしたファイルをunpkgする。※1
  3. rEFItをDL・解凍し、USBメモリEFIフォルダをコピーし、コピー先のtoolsフォルダにunpkgした2013MBA13.smcをコピーする。※2
  4. 同様にhttps://ghostlyhaks.com/forum/attachment/1866?download=1で落としたSmcFlasher-stable.efiを同じtoolsフォルダにコピーする。
  5. ターミナルよりUSBメモリ上にあるenable.shをsudoで実行する。
  6. MBAUSBメモリを刺し、起動後optionキーを押してUSBメモリよりブートする。
  7. rEFItの起動画面が出たら、矢印でEFI Shellを選択実行する。
  8. shellプロンプトよりSmcFlasher.efi -force -LoadBase flasher_base.smc -norestartを実行すると書き込まれる。
  9. shellプロンプトよりSmcFlasher.efi -force -LoadUpdate flasher_update.smc -norestartを実行すると書き込まれる。
  10. shellプロンプトよりSmcFlasher.efi -force -LoadApp 2013MBA13.smc -norestartを実行すると書き込まれる。
  11. shellプロンプトよりSmcFlasher.efi -force -epm 2013MBA13.epmを実行すると書き込まれて自動で再起動する。

※1:unpkgは、ターミナルでpkgutil --expandかxar -xvfで分解できる。コマンドがエラーになる場合、右クリックでパッケージの中を見られる場合がある。
※2:コピーするファイルは4つ(flasher_base.smc、flasher_update.smc、2013MBA13.smc、2013MBA13.epm)

/Volumes/refit
$ du
1000	./efi/refit/icons
1472	./efi/refit
448	./efi/tools/drivers
22016	./efi/tools
23504	./efi

/Volumes/refit/efi/tools
$ ls -l
total 21568
-rw-r--r--  1 apple  staff   344700  2  1 20:49 2013MBA13.smc
-rwxr-xr-x  1 apple  staff   387189 10  7  2017 2017MBA13.smc
-rw-r--r--  1 apple  staff   179968  2  1 20:49 SmcFlasher.efi

【注意】
smcファイルは対象機種のファイルを焼かないと、正しく動作はしない。
マザーボードの型番はGeekBechの結果より分かる。例えばMacBook Air Mid2017では「Mac-937CB26E2E02BB01 MacBookAir7,2」である。