macOS、カーネル機能拡張(.kext)の削除方法

Catalinaへのアップグレード後、再起動の度に警告が表示されるようになった。

レガシーシステム機能拡張に対する警告が表示され、煩わしく感じていました。
カーネル機能拡張は/Library/StagedExtensions/Library/Extensionsなどに配置されています。この.kextの削除方法について備忘も兼ねて書いておきます。

"Mattias Nissler"によって署名された機能拡張がお使いのシステムにあるソフトウェアによって読み込まれました。これは将来のmacOSのバージョンに対応していません。開発元にお問い合わせください。

この警告表示をみて、”Mattias Nissler”ってなんだ?って話なんですが、調べたところ2015年ごろにVPN接続のために入れたTunTapの開発者の方の名前でした。
TunTapに原因があると分かったところで、さてどうするか…。

「/Library/StagedExtensions/Library/Extensions」に配置されたファイルは、セーフブートでも削除できず、SIPを無効にしなければ削除できませんでした。
SIPとはSystem Integrity Protectionの略で、Mac上の保護されたファイルやフォルダを改ざんしようとする悪意を持ったプログラムからデータを守るものです。

SIPを無効化する方法

まずは、リカバリモードで起動します。
起動時に「⌘command + r」をAppleマークが出るまで押し続けます。
リカバリモードで起動したら、ユーティティメニューからターミナルを選択します。
ターミナルが立ち上がったら、以下を入力して、SIPを無効にします。

% csrutil disable

SIPの状態を確認するには、以下コマンドで確認が可能です。

% csrutil status

SIPを有効にする方法は以下です。カーネル機能拡張の削除後はSIPを有効に戻しましょう。

% csrutil enable

カーネル機能拡張(.kext)を削除

SIPを無効にしたら、再起動して不要なカーネル機能拡張を削除します。
今回のケースでは以下のような感じです。

% sudo rm -fr /Library/StagedExtensions/Library/Extensions/tun.kext
% sudo rm -fr /Library/StagedExtensions/Library/Extensions/tap.kext

削除後に、SIPを再度有効にします。