2014年10月29日の水曜日 25時20分ぐらい
MacBookAir2011(mid)でiOSとAirDrop・Handoffをする
日記
2014/10/30 01:26
意気揚々とYosemiteにアップしたMBA2011(mid)でしたが
いつまでたってもiOSとの間でAirDrop/Handoffができないので
調べてみたらMBA含めて2012以降のみとのこと・・・。
でた!Appleの大事なことは言ってませんでした作戦。
あれでもMBA2011(mid)はBT4.0LE対応のはずなのに?と嘆いてたら、
そういやAirPlayミラーリングの時も確かソフトウェアの制限で
モジュールいじって動かした記事を読んだ覚えがあったので、
調べてみたところやっぱり可能とのことでした。
(MacOS8.5でPB5XXPPCドータカードが未対応だったので
バイナリ変更で動かす件は記憶に新しい出来事です、あれもう15年前?)
日本語の記事も見あたらなかったので自家版で書いておきます。
(注意)
以降大変危険な作業なので、あくまで元記事の参考としてください。
失敗すると無線LANおよびBluetoothが使えなくなります。
実行する場合はバックアップと復元できる環境での実施をお勧めします。
下記内容につき免責とさせていただきます。
参考にした元リンク:MacRumors
http://forums.macrumors.com/showthread.php?t=1803192
以下、MacBookAir2011mid(MacBook4,1)を対象としています。
変更点
・バイナリエディタは使わずターミナル上のviで作業します。
・手順22.では自分の対象機種のみ変更しています
1.Kext Dropをリンクからダウンロード
バイナリが動けばdmgのloopbackマウント内で実行しても構いません
2.ディスクユーティリティでアクセス権の修復します(不要?)。
3.該当コマンドでnvramのオプションを書き換えます。
4.再起動
5.念のためバックアップしておく
6.一旦kextを外します
7.kextキャッシュ更新
8.再起動
(これ以降のWLANもBTもkextを再配置するまで使えません)
9.「Mac-16桁」の値を確認します。
10.viをバイナリモードで起動してAirPortBrcm4360ファイルを編集します
:%!xxdでバイナリ編集モードに移行
/Mac-00BE6ED71E35EB86を探す(最初に現れるMac-の部分)
9.で見た16桁に上書きする。この時左側のdecimal表記の方を編集する
※man ascii のhexdecimalの通り
0→30〜9→39、A→41〜F→46に置き換えて置換する

/Mac-2E6FAB96566FE58Cを探す(最後に現れるMac-の部分)
同様に9.で見た16桁に上書きする。
:%!xxd -rでテキストに戻してZZして保存
(ここはキャプチャ忘れました)
11.viをバイナリモードで起動してIOBluetoothFamilyファイルを編集します
:%!xxdでバイナリ編集モードに移行
/Macで検索。なぜか先頭行がヒットしないのでカーソル移動。
自機にあったコードナンバーを修正
※MBA2011midの場合MacBookAir4,1→MacBookAir1,1
:%!xxd -rでZZして保存

12.Kextを起動して、~/Desktop/IO80211Family.kextをD&D→Install
13.同様にKextを起動して、~/Desktop/IOBluetoothFamily.kextをD&D→Install
14.キャッシュの更新
何行目かに以下が表示されればOK
15.再起動
これでWLANとBTが復活します。
16.システム環境設定→一般の下の方に追加を確認
17.システムレポートで「はい」を確認

18.MacとiOSデバイスのiCloudをサインアウト→サインインする。
19.以下表示に変われば完了です。

最初のnvramオプションは戻した方がいいかもしれません。
iCloud使えばAirdropはあまりいらない気もしますが、
iPhone電話連携される方にはよい機能ですね。よいNewOSライフを!
いつまでたってもiOSとの間でAirDrop/Handoffができないので
調べてみたらMBA含めて2012以降のみとのこと・・・。
でた!Appleの大事なことは言ってませんでした作戦。
あれでもMBA2011(mid)はBT4.0LE対応のはずなのに?と嘆いてたら、
そういやAirPlayミラーリングの時も確かソフトウェアの制限で
モジュールいじって動かした記事を読んだ覚えがあったので、
調べてみたところやっぱり可能とのことでした。
(MacOS8.5でPB5XXPPCドータカードが未対応だったので
バイナリ変更で動かす件は記憶に新しい出来事です、あれもう15年前?)
日本語の記事も見あたらなかったので自家版で書いておきます。
(注意)
以降大変危険な作業なので、あくまで元記事の参考としてください。
失敗すると無線LANおよびBluetoothが使えなくなります。
実行する場合はバックアップと復元できる環境での実施をお勧めします。
下記内容につき免責とさせていただきます。
参考にした元リンク:MacRumors
http://forums.macrumors.com/showthread.php?t=1803192
以下、MacBookAir2011mid(MacBook4,1)を対象としています。
変更点
・バイナリエディタは使わずターミナル上のviで作業します。
・手順22.では自分の対象機種のみ変更しています
1.Kext Dropをリンクからダウンロード
バイナリが動けばdmgのloopbackマウント内で実行しても構いません
2.ディスクユーティリティでアクセス権の修復します(不要?)。
3.該当コマンドでnvramのオプションを書き換えます。
sudo nvram boot-args="kext-dev-mode=1"
4.再起動
5.念のためバックアップしておく
mkdir ~/backup cp -a /System/Library/Extensions/IO80211Family.kext ~/backup/ cp -a /System/Library/Extensions/IOBluetoothFamily.kext ~/backup/
6.一旦kextを外します
sudo mv /System/Library/Extensions/IO80211Family.kext ~/Desktop/ sudo mv /System/Library/Extensions/IOBluetoothFamily.kext ~/Desktop/
7.kextキャッシュ更新
sudo kextcache -system-prelinked-kernel sudo kextcache -system-caches
8.再起動
(これ以降のWLANもBTもkextを再配置するまで使えません)
9.「Mac-16桁」の値を確認します。
ioreg -l | grep "board-id" | awk -F\" '{print $4}'
10.viをバイナリモードで起動してAirPortBrcm4360ファイルを編集します
vi -b ~/Desktop/IO80211Family.kext/Contents/Plugins/AirPortBrcm4360.kext/Contents/MacOS/AirPortBrcm4360
:%!xxdでバイナリ編集モードに移行
/Mac-00BE6ED71E35EB86を探す(最初に現れるMac-の部分)
9.で見た16桁に上書きする。この時左側のdecimal表記の方を編集する
※man ascii のhexdecimalの通り
0→30〜9→39、A→41〜F→46に置き換えて置換する

/Mac-2E6FAB96566FE58Cを探す(最後に現れるMac-の部分)
同様に9.で見た16桁に上書きする。
:%!xxd -rでテキストに戻してZZして保存
(ここはキャプチャ忘れました)
11.viをバイナリモードで起動してIOBluetoothFamilyファイルを編集します
vi -b ~/Desktop/IOBluetoothFamily.kext/Contents/MacOS/IOBluetoothFamily
:%!xxdでバイナリ編集モードに移行
/Macで検索。なぜか先頭行がヒットしないのでカーソル移動。
自機にあったコードナンバーを修正
※MBA2011midの場合MacBookAir4,1→MacBookAir1,1
:%!xxd -rでZZして保存

12.Kextを起動して、~/Desktop/IO80211Family.kextをD&D→Install
13.同様にKextを起動して、~/Desktop/IOBluetoothFamily.kextをD&D→Install
14.キャッシュの更新
sudo kextcache -system-prelinked-kernel sudo kextcache -system-caches
何行目かに以下が表示されればOK
kext-dev-mode allowing invalid signature -67061 0xFFFFFFFFFFFEFA0B for kext IOBluetoothFamily.kext kext-dev-mode allowing invalid signature -67061 0xFFFFFFFFFFFEFA0B for kext AirPortBrcm4360.kext
15.再起動
これでWLANとBTが復活します。
16.システム環境設定→一般の下の方に追加を確認
17.システムレポートで「はい」を確認

18.MacとiOSデバイスのiCloudをサインアウト→サインインする。
19.以下表示に変われば完了です。

最初のnvramオプションは戻した方がいいかもしれません。
iCloud使えばAirdropはあまりいらない気もしますが、
iPhone電話連携される方にはよい機能ですね。よいNewOSライフを!