2013年1月4日金曜日

ZumoDriveのインストーラの確認

ZumoDriveというネット上へのファイル保存・同期サービスソフトの残骸を削除した後、何となくZumoDriveのinstallerとuninstallerとを調べてみました。ZumoDriveは終了したサービスなので直接この記事が役に立つ人はいないかもしれませんが、参考になる人はいるかもしれません。

DiskImage(.dmg)ファイルのマウント

手元に残っているインストール用のアーカイブは、ZumoDrive v.0.961のものでした。最新ではないかもしれませんがこれで確認することにします。DiskImage(dmg)ファイルになっていてこれをマウントすると、
Install ZumoDrive.pkg     Uninstall ZumoDrive.app
の2つのファイルが表示されます。スクリーンショットでは、Finderで不可視ファイルも表示する設定にしているため、.Trashesフォルダも薄く表示されていますが、無視してください。

Installer ZumoDrive.pkgの確認

インストール用のファイルは、パッケージファイル形式になっています。Finderで見る前にQuickLookのSuspicious Packageでインストールスクリプトを確認してみます。
"Contains 10 Install Scripts"という表示の右にある矢印ボタンをクリックするとそれぞれのスクリプトを確認できます。
表示されたのは、InstallationCheck, VolumeCheck, preflight, preinstall, preupgrade, postinstall, postinstall, postupgrade, postupgrade, postflightの10ファイルです。同じ名前のファイルが2つあるものもあります。以下に各スクリプトの処理の概要を書きます。

InstallationCheck - Mac OS Xが10.4以上かをチェック
VolumeCheck - Mac OS Xが10.4以上かをチェック (InstallationCheckと同様)
preflight - 実行中のZumoDriveがあれば停止、ZumoDriveの仮想ドライブをアンマウント
preinstall、preupgrade -特になにもしていない(変数設定のみ)
postinstall(1) - CM Pluginのインストール、
                  GrowlのフレームワークとPreference Paneをインストール、
                  GrowlHelperの起動とログインアイテムとして設定、
                  Finderの再起動
postinstall(2) - Logファイルへの書込みの指定をしてから書きを実行
                  インストールされているMacFuse Coreが期待するバージョンでない場合、
                  MacFuse Coreをインストール (ZumoDriveパッケージにも保持)
postupgrade(1) - postinstall(1)と同じ内容
postupgrade(2) - postinstall(2)と同じ内容
postflight - MacFUSEのインストール、
                 ZumoDriveの起動

インストールされるものとして、ZumoDriveのアプリケーション本体の他に、CM (Contet Menu) Plugin、Growl/Preference Pane, MacFuseを意識しておくとよさそうですね。
スクリプトを見る限り、MacFuseについては、既存のアプリケーションでMacFuseを使うものがあった場合、バージョンが違うと勝手に別のバージョンに書き換わり、既存のアプリケーションで問題が出る可能性があったようですね。

次に、Install ZumoDrive.pkgをFinder上で右クリックして、パッケージの内容を表示してみます。
以下のようなファイルがあります。
Growl関連やMacFuse関連のファイルもありますね。基本的には、パッケージの内容の確認とインストールスクリプトの確認をします。本来ならMacFUSE.pkgの中身の確認もここに書くとよいのですが、長くなるので詳細は省略します。(MacFUSE.pkgの内部には、MacFUSE Core.pkgというファイルが入れ子になっていました。) 以下のファイルがインストールされるようです。
/Library/Filesystems/fusefs.fs
また、古いfusefs.fsや、fusefs.kext, /usr/local/lib下のlibfuse.*, libulockmgr.*, fuse.pc等が事前に削除されるようです。

以上から、ZumoDrive本体, CM Plugin, GrowlPrefPane, MacFuse関連辺りを注意しておくとよさそうだとわかりました。

uninstall ZumoDrive.appの確認

uninstallerはAppleScriptの実行可能形式(.app)になっています。
AppleScriptエディタでは開けませんでした。これもFinder上の右クリックでパッケージの中身を表示します。
シェル上でstringsコマンドを使い、Contents/Resources/Scripts/main.scptに含まれている文字列を表示させてみると、ZumoDrive.appの文字列は見つかりました。MacFUSEやCM Pluginに関する文字列は見つかりません。断言はできませんが、アンインストーラではZumoDrive.appの本体だけを削除している可能性が高そうです。

ZumoDrive本体以外の削除

アンインストーラを実行した後は、本体は削除されていますので、それ以外で不要なものを削除します。
シェル上でfindコマンドにより、ホームディレクトリ下のLibraryを検索します。

$ cd

$ find Library -iname "*zumo*" | grep -v "Metadata\/Safari"
Library/Application Support/CrashReporter/ZumoDrive_A13DD575-C97A-5E8E-8A5A-5420162AF12D_CrashHistory.plist
Library/Application Support/CrashReporter/ZumoDrive_A74D99BA-B080-58C2-AEC3-EE61FA1F9731.plist
Library/Application Support/Growl/Tickets/ZumoDrive.growlTicket
Library/Contextual Menu Items/_ZumoDriveCM.plugin
Library/Contextual Menu Items/_ZumoDriveCM.plugin/Contents/MacOS/_ZumoDriveCM

コマンドでgrep -v ... は、Safariのキャッシュデータを非表示にするためです。


まずCM Pluginを削除します。
$ rm -r Library/Contextual Menu Items/_ZumoDriveCM.plugin

ZumoDriveからのGrowl通知設定も削除します。System環境設定のGrowlの各アプリケーション用の設定です。


これは、画面の削除ボタンから削除するほうが安全そうなので削除ボタンを押して削除します。
システム環境設定のログイン項目にZumoDriveが残っていれば、ついでに消去します。(私の環境では、ログイン項目は残っていませんでしたが)
 また、

CrashReporterのファイルは、よくわからないのでそのままにしておきます。
ルートディレクトリも同様に確認しましたが、CrashReporterのファイルしかありませんでした。

最後に、locateコマンドで確認してみます。
$ locate -i zumo

/Library/Application Support/CrashReporter/ZumoDrive_00000000-0000-1000-8000-0016CBAB0CE0_CrashHistory.plist
/Library/Application Support/CrashReporter/ZumoFSMonitor_00000000-0000-1000-8000-0016CBAB0CE0.plist
/Library/Application Support/CrashReporter/ZumoFSMonitor_00000000-0000-1000-8000-0016CBAB0CE0_CrashHistory.plist
/Library/Receipts/Install ZumoDrive.pkg
/Library/Receipts/Install ZumoDrive.pkg/Contents
/Library/Receipts/Install ZumoDrive.pkg/Contents/Archive.bom
/Library/Receipts/Install ZumoDrive.pkg/Contents/Info.plist
/Library/Receipts/Install ZumoDrive.pkg/Contents/PkgInfo
...
/Volumes/Mini2012 HD/.zumodrive_temp_cache
...

以前使用していたシステムドライブのルートディレクトリにZumoDriveのテンポラリキャッシュディレクトリが残っていましたので、それも削除しました。

$ sudo rm -r "/Volumes/Mini2012 HD/.zumodrive_temp_cache"


市販やシェアウェアでアプリケーションクリーナがありますが、こういうことをやっているのでしょうね。ZumoDriveのインストーラはスクリプトが読めましたので、ある程度自動化できそうですが、アンインストーラのようにバイナリ形式になっていると大変そうですね。
さらのシステムディスクを用意して、新規にインストールして、作成、修正されたファイルを検知するなどのアプローチをとっているのかもしれませんが。

0 件のコメント:

コメントを投稿