未来世紀アラカワ未来世紀アラカワ2013-12-18AndroidのファイルシステムについてMobileAndroid4.2以降はタブレットに限ってマルチユーザーモードが実装されたそうだ。それに伴って、ユーザーデータの保存場所がぐちゃぐちゃになっているという話を聞く。マルチユーザーモードでないころからすでにメーカーごとに微妙に実装が異なっていたりしていたのに、さらに...という感じなのだろう。(Androidで開発をしたことがあるわけではないので実際どの程度苦労するのかは分からないが)そもそも/Systemとか/Dataとか変な構造にしなくて、おとなしくFHSに従っていれば良かったのではないだろうか。すればマルチユーザーになろうが/home以下に新しいユーザー用のデータディレクトリを作れば済む話なんじゃないかと素人ながら思う。rootユーザー以下一般ユーザー以上の権限を持つ管理者ユーザーのようなものが必要になるかもしれない。アプリの権限問題も、もしかしたら危ない動きをするかもしれないものは管理者ユーザー権限でしかインストールできず、(場所は/usr以下)データ通信もせずファイルの読み書きもほとんどしないようなゲームは一般ユーザー権限でもインストール可能(場所は/home/local以下)というようにできたのではないだろうか。現実そうなってしまっているのだからしかたがないだろう。いえ、Androidスマートデバイスではもうひとつ問題がある。それはSDカードの取扱。自分が触ったことのあるデバイスはだいたい本体のフラッシュメモリ(のユーザーデータ格納用パーティション)を/sdcardにマウントして、本来のSDカードは/mnt/external_sdだとか/mnt/ext_sdだとかにマウントするしくみになっている。所在なさげにマウントされているだけなので、FHSに従おうがこの問題は残る。そもそも「リムーバブル」メディアを常時差しっぱなしにしておくことを考えていないのだからしょうがない。ここが本題なのだが、内部ストレージも外部ストレージも一元的に扱う仕組みはないだろうか?シングルユーザーでしか使えない仕組みの時はユーザーデータを格納するディレクトリ以下になんらかのディレクトリを作成して、そこにマウントさせるという仕組みができたんじゃないかと思っていた。マルチユーザーモードではこの方法は使えなくなった。マルチユーザーだろうがなんだろうが関係ない画期的な方法を思いついた。現在、SDカードはFAT32で単一パーティションというのが当たり前だ。この中に、ext4なりのディスクイメージをユーザーごとに作成する。┗━user3.imgで、SDカードを適当なところにマウントしたら(ここを通して読み書きしないので場所はどこでもよい)、各ユーザーディレクトリのイメージを内部ストレージにあるユーザーディレクトリ以下のディレクトリにループバックマウントする。~/externalとかに。すればマルチユーザー環境だろうがうまくいくんじゃないかと思ったんだけど、どうでしょう。ほんとにこんな仕様になったら、AndroidからはともかくPCにつなぐときたいへんだろうな~。T100を買って一週間ほどたったので詳細を。始めたブログも気づけば10年を超えてました。(bloggerから移転)ブログを書くことで自分と向き合っています。欧州サッカーメガクラブはFFPを破るのかトップに戻るプライバシーポリシー・免責事項お問い合わせ未来世紀アラカワ引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。