Android4.1/JBで追加されたマルチユーザー(ユーザー切り替え)機能とサンドボックスセキュリティについて
http://blog.2maru.com/archives/1735
Android4.1/JBでは、root権限が必要ですが、実際にユーザーを作成し、削除することができます。また、実際にUIからユーザーを切り替えて使用することができます。
インストール済みのアプリはそのまま引き継がれますが、その他のユーザーデータは引き継がれず、端末の初期セットアップ状態と同じ状態になります。
追加したユーザーが設定アプリを実行すると、設定項目が大幅に少なくなっていることがわかります。
# pm create-user [username] # pm list-users
/data/user配下には、ユーザー毎にPrimaryユーザのユーザデータ(/data/user/0は/data/dataへのシンボリックリンク)のコピーが作成されます。
これにより、同じアプリでも、ユーザーによって付与されるUIDが異なることがわかります。
</data/system/users>
ユーザーを管理するためのデータが保存されます。
[/data/system/users/userlist.xml]
登録されているユーザーの一覧を管理しているファイルです。
[/data/system/users/ユーザー番号.xml]
各ユーザーの情報を管理しているファイルです。
[/data/system/users/ユーザー番号]
各ユーザーの情報を管理しているディレクトリです。
pmコマンドには、パッケージが要求するパーミッション(Android4.1/JBではprotectionLevelが"development"のpermissionに限られる)に対して許可を与えたり(grant)、取り消す(revoke)ことができるようです。
ようやくマトモになってきたな。