@port139 Blog

基本的にはデジタル・フォレンジックの技術について取り扱っていますが、記載内容には高確率で誤りが含まれる可能性があります。

Android のマルチユーザと adb backup (1)

AVD 上の Android でマルチユーザーを設定し、adb install コマンドで LINE をインストールしてみました。Owner と新しいユーザーの両方から LINE アプリケーションを起動する事ができますが、それぞれアプリケーションデータの保管場所は異なっています。

最初の Owner アカウントで LINE を実行すると以下二つのフォルダ配下にデータベース関連のファイルが存在している事を確認できます。

/data/data/jp.naver.line.android/databases

/data/user/0/jp.naver.line.android/databases

追加したユーザーのデータのデータベース関連ファイルは下記フォルダ配下になります。

/data/user/10/jp.naver.line.android/databases

作成した順番に 10,20 と番号が付与されるようですが、Owner については /data/data 配下と /data/user/0 配下の両方にデータがある事になりますが、/user/0 は /data/data へのリンクになっています。

新しく作成したユーザーでアプリケーションをインストールした場合、そのアプリケーションは Owner のアカウントからは見えません。とはいえ、アプリケーションのフォルダ自体は /data/data 配下に作成されてはきます。

追加したユーザーがインストールしたアプリケーションが、pm list packages コマンドで確認できるか試してみたのですが、別ユーザーでインストールしたアプリケーションはパッケージリストの中に表示されませんでした。この為、マルチユーザの端末については pm list packages でインストールされているアプリケーションを全て把握するのは難しそうです。

 

マルチユーザ環境で adb backup コマンドを実行した場合ですが、基本的にはシングルユーザーでバックアップ対象としている範囲だけをバックアップするようです。

まず、adb backup を実行した際の確認画面が、追加ユーザーでログインしている状態では表示されません。Owner アカウントでログインしている場合にはバックアップの確認画面が表示されます。

次にバックアップされるデータですが、例えば adb install でインストールした LINE は、apps\jp.naver.line.android としてバックアップされます。しかし、これは Onwer アカウント側のデータのみで、追加しているユーザーがある /user/10 配下のデータはバックアップに含まれていません。

また、追加ユーザーでインストールしたアプリケーションは、/data/data 配下にフォルダはありますが、バックアップにはこのフォルダが含まれてきません。

adb backup で -shared を指定した場合、/shard/0 としてバックアップが取れ、Ownerアカウントでは見えなかった Download フォルダ配下も取れているのですが、AVD 上での動作ですので実機でも同じ動作となるのかが分かりません。

 

adb backup コマンド自体はマルチユーザー環境を想定していないようですので、タブレットでマルチユーザーが使われている場合には、adb backup では不完全なバックアップしか取れない状況です。