Apple SuperDrive を使えるように

Apple SuperDrive はMacBook Air のとき発売され、このMacBook Air専用で、ほかのMacでは使えないとか、USBハブ経由では使えず、本体に接続しないといけないとかになっていた。
これを解消するためには
/Library/Preferences/SystemConfiguration/com.apple.Boot.plist
を編集することになる。ところがEl Capitan から Apple はシステム関係のファイルの書き換えをできなくなるようにした。System Integrity Protection (SIP)というわけだ(rcmdnk’s blogのOS X 10.11 El CapitanのSystem Integrity Protection(SIP)についてちょっと詳しく参照)。だから単純に、管理者になってもシステム関係のファイルの書き換えができない。Sierra を使っているからな。SuperDriveを使うためには書き換える必要があるのだ。
El Capitanより前のOSだったら、

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Kernel Flags</key>
	<string></string>
</dict>
</plist>

<string></string>

<string>mbasd=1</string>

“にすればいい。

/Library/Preferences/SystemConfiguration/ で

$ sudo vi com.apple.Boot.plist

としてvi で書き換えればいいのだ。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Kernel Flags</key>
	<string>mbasd=1</string>
</dict>
</plist>

ですね。 再起動すれば使えるようになる。
El Capitan や Sierra では、面倒だ。上記のようにたとえsudo あるいは su でスーパーユーザになっても書き換えることができない。
まず command + r を押しながら再起動してリカバリーモードで起動する。(HappyHackingのキーボードではだめだった。Appleキーボードを使わないとできなかった)SIPを無効/有効にするコマンド csrutil がリカバリーモードでしか使えないからだ。
起動して言語を選ぶと macOSユーティリィティ が起動するので、メニューバーのユーティリィティからターミナルを起動する。

-bash-3.2# csrutil disable
Successfully disable System Integrity Protection. Please restart the machine for the changes to take effect.
-bash-3.2# reboot

csrutil disable と入力してSIPを無効にし reboot 再起動 するのだ。
無効になったことは、ターミナルで csrutil status と入力すればいい。

$ csrutil status
System Integrity Protection status: enabled (Custom Configuration).
Configuration:
        Apple Internal: disabled
        Kext Signing: enabled
        Filesystem Protections: disabled
        Debugging Restrictions: disabled
        DTrace Restrictions: disabled
        NVRAM Protections: disabled
This is an unsupported configuration, likely to break in the future and leave your machine in an unknown state.
$

幾つかの項目に分かれているが、すべてdisableになっている。
そこで、上の書き換えを行い、またリカバリーモードで起動し、今度はターミナルで csrutil enable と入力しSIPを有効にして再起動するのだ。もとに戻ったことはターミナルで先程と同じコマンド csrutil status を入力するとわかる。

$ csrutil status
System Integrity Protection status: enabled.
$

ちなみに、オリジナルのcom.apple.Boot.plistは
-rw-r–r–@ 1 root admin 239 1 24 15:15 com.apple.Boot.plist
と@ が付いている。EA (Extended Attributes)情報が記載されたファイル(directory)というわけだ。この余計な情報を削除して@無しにするとダウンロードしたプログラムを使うことができる。削除するコマンドは「xattr -c -r」(-r はdirectoryの場合)である。今回の場合このコマンドはSIPで保護されているファイルなので使えない。
上記の手順にしたがって変更したら@はなくなっていた。
持っていたから使えるようにしたけど、持ってなかったら、そしてCD / DVDを使う必要があるのなら、Windows用のが使えるからね。そっちのほうが安いし。デザインだけだからなSuperDriveのいいところは。
QiitaのMac OS X El CapiptanでSIPを無効化するとか
Λ Takuya71 の日記 Λの20150513Apple SuperDrive を USBハブ経由で使用する できた!を参考にしました。