FTDI Virtual COM Port Driversをアンインストールする方法(Big Sur以降)


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

再起動したら、作業完了です。

以上です。