2017年9月27日水曜日

こんにちはmacOS High Sierra、さようならhandoff(Instant HotSpot & Continuity& Airdrop)

じまさです〜

2017/9/26、待ちに待ったmacOS High Sierraが無料ダウンロード可能になりました。
朝起きて、すぐにInstallerをダウンロード、インストールは50分ほどで終わりました。

心配していたアプリ、プリンタの動作はなんのトラブルもなく普通に使えてほっと一安心です。

我がMacBookPro 17-inch Early 2011は、Handoffを使用するために、
MBP 2011モデル用Bluetooth 4.0 アップグレードキットを入手して
ゴニョゴニョしてiPhoneのSafariで閲覧しているサイトをmacOSのSafariで開いたり、その逆をしていました。
osのアップグレードやアップデート時は、ゴニョゴニョして使えるようになってました。

ところが、今回のmacOS Hight Sierraでは、最初Handoffの挙動はあったものの、さっぱり動作せず・・・
動作しないときは、iCloudのサインアウト/サインインで復活してましたので、同じ事をしたにも関わらず、うんともすんとも・・・

色々調査した結果、macOS High Sierraには、Secure Kernel Extension Loading(SKEL)が導入されたため、サードパーティの機能拡張は許可をする必要があるとのこと。
(↑これでかなり悩む方が多いかと思います。アンチウイルスソフトメーカーの一部では対応方法を記載していますが、ESETは記載なかったです)


セキュリティとプライバシーの一般項目にはいままで3つあった実行許可が2つしかありません。

ターミナルを開き、
sudo spctl --master-disable
とすることにより、SKELを無効にできるとのこと。但し、NVRAMをリセットした場合は、有効になるので再設定が必要とのことです。
SKELを無効にするといままでの動作(すべてのアプリを許可にできる)となるようです。

結果、SKELを無効にしてもHandoffは動きませんでした。

セキュリティ上脆弱となるので、sudo spctl --master-enableでSKELは有効に戻しました。

ならば、原因はなにか・・・
システムレポートでKernel Extensionの状態を確認したら、取得元が不明、署名者が不明となっていて、読み込み可能がいいえとなっていました。

ゴニョゴニョした結果、Kernel Extensionが改変されているので、macOSが動作させないようになってしまったようです。

でもHandoffが使えなくても、AirDropとFaceTime(電話)はmacで使えました。

とりあえず、IO80211Family.kextを元に戻すことを考えます。

ゴニョゴニョしたツールでアンインストールしようにもエラー。macOSのファイルシステムがHFS+からAPFSに変わったため、Recovery HDが開けなくなったためです。無論、IO80211Family.kextは元に戻せません。(正規のkextがBackupされていなかった)

仕方が無いので、macOS High SierraをParallels Desktop 13にて新規インストール、正規のIO80211Family.kextを取り出ししました。

後は、SIPを無効(macOS復元モード=リカバリモードでcsrutil disable)にしてから、/System/Library/Extensions/へIO80211Family.kextをコピーして再起動しました。

ただコピーしただけなので、パーミッションが不正でエラーになっています。
ターミナルを立ち上げて、chown/chmodでアクセス権を修正しました。sudoは管理者権限で実行しなさいという意味です。(最初だけパスワードを聞いてくるので入力)
再起動後、IO80211Family.kextが正規の状態に戻ったことが確認できました。

iPhoneへの電話着信とfacetimeはmacで受け取れますが、AirDropは使えなくなりました。










署名がAppleのまま、Kernel Extension(kext)を書き換えるなんて、できそうにありません。ハッカーならできるかもしれませんが・・・。ハッキングしてくれたkextが入手できればhandoffは復活しそうですが無理でしょうね。

次期macOS(10.14)では、恐らく2011年製MacBookProは切り捨てされるでしょうから、いよいよお蔵入りになるかな・・・お蔵入りにするにも勿体ないなぁ・・・。
来年は、MacBookProの入れ替えを検討します。17インチが使いやすかったのになーーー。

せめてApple製ハードを入れ替えた場合は、正常に動くようにしてくださいよぉ〜〜〜
Apple製のハードの一部を最近の物に交換しても動くマシンがあるから、同じようにしてほしいなぁ・・・
昔はよかったなぁ。CPU入れ替えたり色々やっても動いたからーーー。

----- 追記 -----

翌日になったら、Wi-Fiハードウエアなしとなり、Wi-Fiアイコンが灰色で×になりました。
機能拡張のIO80211Family.kextを見ると読み込みされていません。やはり正規の方法でいれないとダメみたいです。
過去にゴニョゴニョして同様になったときは、SIPを無効にすれば正常にうごくようになりましたが、今回はダメでした。

リカバリモードでmacOSを再インストールを実行。
Appleと通信するので、Wi-Fi接続は必須です。この時点でWi-Fiが使えるので、ハードトラブルで無いことが確認できます。
ハードディスクの初期化さえしなければ、元の動作環境は消えずに維持されたまま、macOSがインストールできます。
ゴニョゴニョしたときにIOBluetoothFamily.kextの動作を確認しましたが、こちらはAppleの署名付きで書き換えされていませんでした。

ゴニョゴニョの際は、IO80211Family.kextとIOBluetoothFamily.kextが書き換えされるべきなので、後者のkextが書き換えされていなかったのが、handoffが正常動作しない原因と思われます。

この現象をゴニョゴニョ開発元が解決して、アンインストールできるようになれば復活するかもしれませんね。
macOS SierraからWi-Fiハードウエアなしとなった際に、アンインストールで不具合を解決してから、再度ゴニョゴニョでhandoffが使えるようになったので、何とかなればいいなぁ・・・。

MacBookPro mid 2012を入手して、IO80211Family.kextとIOBluetoothFamily.kextを入れ替えるという考えも思いつきましたが、そこまでするのならハード入れ替えですよね!?

0 件のコメント:

コメントを投稿