Catalinaの知られざる/注目されざる変更点を紹介するシリーズの第2回は、セキュリティ・プライバシー保護と周辺機器サポートという2つのテーマでCatalinaにもたらされた変化を語ってみたい。どちらも派手さはないが、Macに重大な変化をもたらすものだ。
ユーザに求められる「同意」とは
Catalinaを使ううち、あるアプリでなんらかのアクションを行うと下図のようなアラートが現れることがある。「OK」ボタンをクリックし許可しても、似たような動作を行うと再び現れる。「◯◯◯上のファイルにアクセスしようとしています」という、これまでのmacOSでは見たことのないフレーズだ。
Terminalでも、同様のアラートが出現する。デスクトップ(~/Desktop)にカレントディレクトリを移すという、ホームディレクトリ以下の領域はユーザの自由というUNIX系OSの流儀から外れるものだが、確認を求められたものは仕方ない。不承不承「OK」をクリックしても、ダウンロードフォルダ(~/Download)への移動で再び現れた。これは一体?
すっかり失念していたが、この現象はCatalinaで強化された「User Consent」の概念によるものだ。アプリが連絡先情報や位置情報にアクセスするとき確認を求めるのは、いまに始まったことではないが、Catalinaではその対象が一気に増えた。スクリーンキャプチャ/録画と、主要なディレクトリへのアクセスが原則"許可性"になったのだ。若干面倒な気もするが、セキュリティの観点からは正しい進化といえる。
その主要なディレクトリとは、前述したデスクトップ(~/Desktop)とダウンロード(~/Download)、書類(~/Documents)、ネットワークボリュームとリムーバブルメディア、そしてiCloud Drive。iCloud Driveは、ローカルにミラーされた領域(~/Library/Mobile Documents以下)は含まれないため、我らがTerminalと直接の関係はないが、それ以外は大アリだ。
アラートで許可した情報は、システム環境設定「セキュリティとプライバシー」パネルの「プライバシー」タブにある「ファイルとフォルダ」項目に反映される。ここを開けば、アプリごとの許可情報を確認/変更できるという寸法だ。
たとえば、Catalinaにアップデートして初めてTerminalでデスクトップ(~/Desktop)へアクセスするとき、アラートで「OK」をクリックするとTerminalの項目に「"デスクトップ"フォルダ」が作成され、そのチェックボックスに印が付く。「許可しない」をクリックしても「"デスクトップ"フォルダ」は作成されるが、チェックボックスに印は付かない。
なお、同じ「プライバシー」タブにある「フルディスクアクセス」という項目にTerminalを登録し、そこにチェックを入れると、すべてのディレクトリへのアクセスが許可される。アラートの出現が煩わしく感じる場合は、こちらを利用してもいいだろう。
System Extensions登場、そして消えゆくKEXT
周辺機器/カーネル寄りのアプリケーション開発に係るデベロッパーにとって、Catalinaにおける最大の関心事は「DriverKit」と「System Extensions」の登場ではないだろうか。
前者はIOKit(デバイスドライバ開発用フレームワーク)を置き替えるもので、USBやネットワーク機器などのドライバを開発できる。周辺機器ベンダーはドライバを書き換えなければならず、古いハードウェアはMacから強制退場させられることになるが、一方ではデバッグが容易になりMac App Storeでの配布も可能になるメリットを得られるわけで、デベロッパーにとっても利益があるといえるだろう。
後者はアプリに内包される形(単独では存在しない)で実装される機能拡張の総称で、「Network Extensions」と「Driver Extensions」、そして「Endpoint Security Extensions」の3種類が定義される。従来のKEXTがそうであったようにOSの機能を拡張するが、従来の機能拡張(KEXT)のようにカーネル空間ではなく、ユーザ空間で動作することが大きな違いだ。もしSystem Extensionsの動作に異常が生じても、カーネルや他のアプリの動作には影響しないため、システムの安定性は格段に高まる。
そして、ここも重要なポイントだが、CatalinaはこれまでどおりのKEXTをサポートする最後のmacOSとなる。アップデート前(Mojaveのとき)にインストールしたドライバの多くはCatalinaでもそのまま動作するが、macOS v10.16以降はわからない。System Extensionsがカバーする機器のKEXTはロードされなくなる見込みで、そうなれば新しいサポートソフトウェア(System Extensionsを内包したアプリ)が提供されないかぎり動作しない。
つまり、Catalinaで支障なく動作している周辺機器も、そのベンダーが"System Extensions対応"に前向きでないかぎり、macOSの次かその次のバージョンで動作しなくなる可能性が高い。エンドユーザとしては成り行きを見守るしかないが、macOSをアップデートしたら大切な周辺機器が使えなくなり途方に暮れた、ということがないよう情報収集に努めたい。