IoT関連の開発で、FTDIのVirtual COM Port Driverをインストールしたのですが、その後、アンインストールしたくなったときに手間取ったので、記録として残しておきます。
経緯
私がインストールしていたのは、macOS用のドライバー 1.4.7で、2021年5月18日に公開されたものになります。
まず、私の場合、ドライバー(.dext)は下記の中にインストールされていました。
/Library/SystemExtensions
また、シンボリックリンクが下記の中にもありました。
/Library/DriverExtensions
ところが削除するために、Finderから[delete]キーで削除しようとしても、ターミナルから rm -Rf しても、sudoをつけても削除できません。Operation not permitted的なエラーが表示されます。
FTDIのサイトを見ても削除する方法が書かれているものの、内容が古い。
困ったなー、となっていました。
解決策
結論をいうと、アンチウィルスソフトベンダーのSophosのサイトに参考となる手順が載っていました。
https://community.sophos.com/intercept-x-endpoint/big-sur-eap/f/recommended-reads/124391/how-to-remove-system-extensions
FTDIのドライバーの場合は、下記の手順となります。
1) System Integrity Protection(SIP) を無効化する
SIPが有効だと2)の手順でエラーになるため、まずSIPを無効にします。SIPを無効にするにはリカバリー(復旧)モードに入って、そこでターミナルを開く必要があります。
リカバリーモードへの入り方はこちらにあります。
https://support.apple.com/ja-jp/HT201255
M1 Macの場合、その後ターミナルまでたどり着く方法はこちらにあります。
https://support.apple.com/ja-jp/guide/mac-help/mchl82829c17/mac
無事にターミナルが開けたら下記のコマンドでSIPを無効化します。
csrutil disable
2) ドライバーをアンインストール
ターミナルを開いて次のコマンドでアンインストールします。
# インストールされているドライバーと、teamIDとbundleIDを確認
systemextensionsctl list
# teamIDとbundleIDを引数にして、uninstallコマンドを実行
systemextensionsctl uninstall 658CPPCMJJ com.ftdi.vcp.dext
一度再起動して、ドライバーがアンインストールされていることを確認します。(デバイスを認識しなくなっていることで確認する、など。)
3) SIPを再度有効化する
1)と同じようにしてリカバリーモードでターミナルを開き、下記のコマンドを入力して、SIPを再度有効化します。
csrutil enable
再起動したら、作業完了です。
以上です。