2012年10月23日火曜日

DMM電子書籍ビューアのアンインストール

1. はじめに

いつも使っている MacBook Pro でふと目に止まったアクティビティモニタ、acaptured というプロセスが妙にメモリを食っている。ん? システムのサービスデーモンか何かしらと思ってググってみるもそれらしい情報が見つからない…

ということで今回は DMM電子書籍ビューアが一緒にインストールする怪しげなものと、そのアンインストール手順を説明します。

2. acaptured はどこから来たのか

アクティビティモニタで acaptured を発見してから次にしたことは、locate コマンドで何処に acaptured が居るのか探すことでした。 locate はターミナルから使うコマンドですが Spotlight と違ってオプションを指定しなくてもディスク全体からファイル名検索ができるので何かと便利です。
$ locate acaptured
/Library/LaunchDaemons/jp.co.cyphertec.CypherGuard.acaptured.plist
/usr/local/bin/acaptured
/usr/local/etc/acaptured.plist
うぉ、こいつ /usr/local/bin にいるぞ!? 自分としては homebrew とかで入れた覚えないし、野良ビルドした覚えもない。LaunchDaemons に plist があるということはサービスとして常に起動するようになっているっぽいな。 CypherGuard ってなに?とググってみるとCypherGuard for PDF というのが引っかかる。
どうも acaptured というのは CypherGuard for PDF の中の1ファイルと見るのが妥当のようです。

とはいえ CypherGuard という製品をインストールした覚えは全くありませんので、他のソフトと一緒にインストールされたようです。
なんにせよ LaunchDaemon から起動するサービスデーモンを /usr/local/bin とかに勝手に置かれるのは違和感ありまくりです。

3. pkgutil --files で探す

では acaptured がどのインストールで入ってしまったのかを探すことにしましよう。
幸い Mac OS X であればパッケージインストーラでインストールした全てのファイルのリストが /var/db/receipts 以下に保存されています。 pkgutil コマンドを使えばどんなファイルがインストールされたかのリストを表示できますので、順番に pkgutil --files を実行して探していきます。(もちろん for や xargs 使って一気に検索しても良いでしょう。腕に覚えがある人は試してみてください)
さて、acaptured があるファイルはこんなんでした。
$ pkgutil --files com.DMM.dmm電子書籍ビューア.Daemon.pkg
acaptured
acaptured.plist
jp.co.cyphertec.CypherGuard.acaptured.plist
はいDMM電子書籍ビューアが acaptured をインストールしていたことがわかりました。
DMM電子書籍ビューアの Receipt は他に4つあり、計5つの pkg ファイルがインストールされたことがわかりました。その中にはカーネルエクステンションも2つ入っていました。
$ pkgutil --files com.DMM.dmm電子書籍ビューア.10_6.pkg
CExeGuardDrv.kext
CExeGuardDrv.kext/Contents
CExeGuardDrv.kext/Contents/Info.plist
CExeGuardDrv.kext/Contents/MacOS
CExeGuardDrv.kext/Contents/MacOS/CExeGuardDrv
CExeGuardDrv.kext/Contents/Resources
CExeGuardDrv.kext/Contents/Resources/English.lproj
CExeGuardDrv.kext/Contents/Resources/English.lproj/InfoPlist.strings
CTracGuardDrv.kext
CTracGuardDrv.kext/Contents
CTracGuardDrv.kext/Contents/Info.plist
CTracGuardDrv.kext/Contents/MacOS
CTracGuardDrv.kext/Contents/MacOS/CTracGuardDrv
CTracGuardDrv.kext/Contents/Resources
CTracGuardDrv.kext/Contents/Resources/English.lproj
CTracGuardDrv.kext/Contents/Resources/English.lproj/InfoPlist.strings

$ pkgutil --files com.DMM.dmm電子書籍ビューア.EncryptBinaryTool.pkg
EncryptBinaryTool

$ pkgutil --files com.DMM.dmm電子書籍ビューア.ImageViewer.pkg
ImageViewer.app
ImageViewer.app/Contents
ImageViewer.app/Contents/Info.plist
ImageViewer.app/Contents/MacOS
ImageViewer.app/Contents/MacOS/ImageViewer
ImageViewer.app/Contents/PkgInfo
ImageViewer.app/Contents/Resources
... 途中省略 ...
ImageViewer.app/Contents/Resources/zoom_out_mouseover.png

$ pkgutil --files com.DMM.dmm電子書籍ビューア.Offline.pkg
OfflineInfo

4. 手動アンインストール

さて、怪しげな kext とデーモンをしれっとインストールしてくれたDMM電子書籍ビューアをアンインストールすることにします。 一応アンインストールの方法をググって見ると、下記が出てきました。
http://www.dmm.com/help/faq_40_html/=/ch_navi=faq/#Q7
Q.DMM電子書籍ビューアのアンインストール方法を教えてください。
A. DMM電子書籍ビューアのアンインストールは、下記手順で行います。
【Windows版】
1. コントロールパネルの「プログラムの追加と削除」から、「DMM電子書籍ビューア」を選択 2. 「変更と削除」をクリック 3. 「DMM電子書籍ビューアをアンインストールしますか?」のメッセージで「はい」を選択
【Mac版】
1. アプリケーションフォルダから「DMM電子書籍ビューア」を削除してください。
※DMM電子書籍ビューアをアンインストールすると、ダウンロードしたdmmb形式ファイルは閲覧できなくなります。 dmmb形式ファイルを閲覧する場合は、DMM電子書籍ビューアをインストールし直してください。
この通りにDMM電子書籍ビューアを削除しても、カーネルエクステンションと /usr/local/bin/acaptured は残ったままです。だめですね。
ということでこの情報はあてにならないので、pkgutil で見れる情報をたよりに手動でアンインストールしていきます。 Mac OS X 10.6 Snow Leopard の人ならば下記のリンクを参考に pkgutil --unlink コマンドで簡単アンインストールできるみたいです。
Snow Leopardの新コマンド「pkgutil」でパッケージを削除する
残念ながら私の Mac は 10.7 Lion ですので、下記のリンクを参考に一個ずつファイルを手動削除していきます。
https://wincent.com/wiki/Uninstalling_packages_(.pkg_files)_on_Mac_OS_X
$ pkgutil --pkg-info com.DMM.dmm電子書籍ビューア.10_6.pkg
package-id: com.DMM.dmm電子書籍ビューア.10_6.pkg
version: 1.0
volume: /
location: System/Library/Extensions
install-time: 1331130970
$ sudo \rm -rf /System/Library/Extensions/CExeGuardDrv.kext
$ sudo \rm -rf /System/Library/Extensions/CTracGuardDrv.kext
$ sudo pkgutil --forget com.DMM.dmm電子書籍ビューア.10_6.pkg
Forgot package 'com.DMM.dmm電子書籍ビューア.10_6.pkg' on '/'.
$ sudo \rm -rf /usr/local/etc/acaptured.plist 
$ locate jp.co.cyphertec.CypherGuard.acaptured.plist
$ sudo \rm -rf /usr/local/bin/acaptured 
$ sudo \rm -rf /usr/local/etc/acaptured.plist 
$ sudo \rm -f /usr/local/etc/.cache 
$ sudo \rm -f /usr/local/etc/.info
$ sudo \rm -f /usr/local/etc/.list

$ sudo launchctl remove jp.co.cyphertec.CypherGuard.acaptured
$ sudo \rm  /Library/LaunchDaemons/jp.co.cyphertec.CypherGuard.acaptured.plist
$ sudo pkgutil --forget com.DMM.dmm電子書籍ビューア.Daemon.pkg
Forgot package 'com.DMM.dmm電子書籍ビューア.Daemon.pkg' on '/'.
最後にアプリケーションフォルダにある DMM電子書籍ビューア.app をゴミ箱に捨てて削除すればアンインストール終了です。ふぅ。 おつかれさまでした。