2011-05-21

MobileMultiUser for iOS - 家族で共有するiPadやiPhoneでユーザ環境を切り替える、マルチユーザ機能

家庭に1台iPadの時代になりました。
ポストPCのデバイスとして日々の生活をとても便利にしてくれていると思います。
ただひとつ困るのは、iPadでメールやWebのブックマークを自分専用にできないことです。
Mac OS Xだとユーザアカウントをそれぞれの人ごとに登録すれば良いのですが、iPadにはそういう機能がありません。
iPhoneは携帯電話としての感覚があるので、ひとり1台がすんなり受け入れられますが、iPadはまだひとり1台にはなかなかなっていないと思います。

そこで、ユーザ環境を切り替えるツールを作ってみました。

注意:jbとLinux (Darwin) のコマンド操作が必要ですので、このバージョンはある程度コンピュータ知識のある方以外の使用はお勧めできません。
また、プロトタイプレベルのため、限られた機能しかありません。
シェルスクリプトで作成していますので、機能拡張やご指摘などありましたら、本投稿のコメント、メールでお伝えいただけると幸いです。

なお、利用の前にはiTunesでバックアップを取得し、バックアップフォルダのコピーを保存したうえで、お願いします、念のため。

MobileMultiUser for iOS プロトタイプ1 (build #001 2011-05-16) [Download]

MobileMultiUserの機能
  • ユーザごとに保存する内容:
    標準アプリの設定内容 (Preferences)、アイコンの並び・壁紙 (SpringBoardの設定)、Safari・メール・メモの設定・データ・履歴、Webクリップアイコン、Flipboardの設定・データ。
    ユーザを切り替えるとこれらの設定内容が切り替わります。
  • ユーザの間で共有される内容:
    iTunesライブラリ、iBookライブラリ・設定、写真ライブラリ、YouTube設定・履歴、アプリのインストール状態など、前記以外全て。
    ユーザを切り替えてもこれらの設定内容は切り替わりません。
  • ユーザのアプリアイコンがホーム画面に追加されます。
    切り替えたいユーザのアイコンを押すと、環境が切り替わります。
  • ユーザの作成は以下のコマンドを使って行います。
    ここでは他のコマンドも一緒に説明します。
    • cloneUser <username>
      指定した名前のユーザを新たに作成します。
      新しいユーザの設定内容は、現在のユーザからコピーされます。
      なお、コマンド群は、/var/mobile/Library/AddressBook/MMU-parasite/ の配下にあります。
      アドレス帳のライブラリに寄生することで、MobileMultiUser の保存データが iTunes にバックアップされることをねらっています。
    • createUserIcon <username> [-icon color]
      ユーザへ切り替えるためのアプリアイコンをホーム画面に作成します。
      いくつかの色のアイコンを用意しています。
      このコマンドを実行するには特権が必要なので、su してから、または sudo と一緒に使用してください。
      また逆に、createUserIcon 以外のコマンドは mobile ユーザで実行することが必須ですので、注意してください。
    • switchUser <username>
      現在のユーザの環境を保存し、指定したユーザに環境を切り替えます。
      ホーム画面のユーザアイコンを押すと、内部的にこのコマンドが実行されます。
    • saveCurUser
      switchUser の内部コマンドです。
      現在のユーザの環境を保存します。
      保存場所は /var/mobile/Library/AddressBook/MMU-parasite/userprofiles/username/ です。
      現在のユーザ名は currentusername ファイルに記録されています。
    • restoreUser <username>
      switchUser の内部コマンドです。
      指定したユーザの環境を復元します。
      現在のユーザの環境は上書きされます。
      SpringBoard に環境の切り替えを反映させるために、respring してください。
  • iPad、iPhone、iPod touchで使用できます。
    テストした環境は、iOS 4.3.1のiPadと、iOS 4.3.1のiPod touch 4genです。
    iPadを家族で共有する場合の他に、iPhoneを仕事用とプライベート用に切り替えたり、他の人にiPad/iPhoneを貸す時の環境退避にも使用できると思います。
インストールの方法
  1. MobileMultiUser が内部的に使用するために、必要となるCydiaパッケージは Eria Ulitities、Tape Archive、sed です。
    事前にインストールしておいてください。
  2. 上記から MobileMultiUser-001.tar.gz をiPadにコピーします。
    PC/Macにダウンロードした後、scp で iPad の mobile ユーザのホームディレクトリにコピーするのが良いでしょう。

    $ scp MobileMultiUser-001.tar.gz mobile@<ipadのipアドレス>
  3. 次のコマンドでダウンロードしたファイルを展開します。
    展開する先は、/var/mobile/Library/AddressBook/MMU-parasite/ です。

    $ ssh mobile@<ipadのipアドレス>
    ipad$ cd /var/mobile/Library/AddressBook/
    ipad$ tar xzvf ~/MobileMultiUser-001.tar.gz
  4. 現在の設定を元に、最初のユーザを作成します。
    最初のユーザは defaultUser という名前になります。
    次のコマンドを実行します。

    ipad$ cd /var/mobile/Library/AddressBook/MMU-parasite/
    ipad$ ./saveCurUser
    ipad$ su
    # ./createUserIcon defaultUser
    # exit
  5. 追加のユーザを作成します。
    ここでは例としてユーザ名を Taro とします。

    ipad$ cd /var/mobile/Library/AddressBook/MMU-parasite/
    ipad$ ./cloneUser Taro
    ipad$ su
    # ./createUserIcon Taro
    # exit
本バージョンの制限事項
  • 現在のユーザを表示する方法がないので、壁紙を変更するなどして区別できるようにしてください。
    現在のユーザのアイコンをタップして切り替えようとした場合は何もせずにすぐに終了します。
  • 現バージョンでは、ユーザ間で切り替えられる設定は、使い方のところに書いたアプリだけです。
  • ユーザの作成、アイコンの作成は、コマンド操作で行います。
  • 複数のユーザでメールやSafariで同じ外部アカウント(メールアカウントなど)を設定した状態の下、ひとつのユーザでアカウントを削除した場合、他のユーザのアカウント設定からパスワードが削除されてしまいます。
    例えば、最初に defaultUser を作成し、Taro ユーザを作成後、Taroのメールアカウントを設定するために、defaultUserからコピーされたメールアカウントを削除すると、それに引きずられて defaultUserのメールアカウントのパスワードだけが削除されてしまうことがおこります。
    これは、システムのKeychainがひとつしかないためにおこる制限です。
    ユーザ間で同じメールアカウントを設定しなければこのような問題は起こりません。
  • ユーザの切替操作に対してパスワード保護等がないので、現バージョンではセキュリティ対策としての使い方には向いていません。
    あくまでユーザ環境を切り替えることができることの評価が目的です。
[2011-06-02] 今後の拡張機能のアイデアを書きました。
[2011-10-19] iCloudのApple IDの切り替えに関する考察を書きました。
[2011-12-19] MobileMultiUserの新しい画面のモックアップを公開しました
[2011-12-25] V2、パスワード設定機能付きを公開しました。
[2012-01-11] V3、iOS 5対応版公開予定です。
[2012-01-23] iOS 5対応版をCydiaで公開しました
[2012-07-29] 大幅に高速化した MobileMultiUser V4 出来ました

1 comment:

  1. これ良いですね。パスワード保護とか、アプリからのユーザ設定とか着いたら有料でも買います。

    ReplyDelete