0

アイデアはそれです。

私のアプリケーションでは、ユーザーが音楽を聴いたり、ソーシャル ネットワークからビデオを見たりすることができます。ユーザーはこれらのファイルをキャッシュに保存して、オフラインで再生できます。このデータはSDカードに保存され、ファイルマネージャなどからアクセスできます

これらのファイルへのアクセスを他のアプリケーションに制限したい。最も明白なソリューションは、データの暗号化です。

ファイルの暗号化/解読を迅速に行うためのライブラリまたはフレームワークをいくつかお勧めできますか? ロード中に「オンザフライ」でファイルを暗号化することは非常に望ましいことです。

この手順は遅すぎてリソースを大量に消費しますか?

SDファイルシステムの保護されたフォルダなど、他の方法がいくつか存在する可能性がありますか?

4

2 に答える 2

3

はい、これを行うためのより標準的な方法があります。

openFileInputonを使用してフラグContextを設定するとMODE_PRIVATE、アプリケーション内にファイルやフォルダーを作成できます。また、これらのリソースはアプリケーションに対して完全に非公開になります

編集 :

ほとんどの場合、これらのファイルは/data/data/<app_package_name>/files. つまり、ほとんどの場合、電話のメモリ上にありますが、これは実装固有です。

ファイルスパムについて言及している@Carlosのコメントについては、NAND を複数のファイルであふれさせることができます/dataが、ほとんどの場合、専用のパーティションにマウントされます。したがって、ある時点でパーティションの仮想サイズに到達することになります。この投稿を見てください。受け入れられた回答は、これについての詳細を提供します。簡単に言えば、これは実装固有です(メーカーによって異なります)。

于 2013-04-03T13:40:34.090 に答える
0

外部ストレージを使い続けたい場合は、暗号化を使用するしかありません。SpongyCastleはそれを助けることができます。BouncyCastle API の Android バージョンです。

それとは別に、ファイルを内部ストレージに移動することもできますが、メディア ファイルは大きくなる傾向があり、ほとんどのデバイスの内部ストレージは非常に限られているため、これは実現できない場合があります。それらを内部ストレージに移動した場合でも、root 化されたユーザーはそれら (または root 権限を持つアプリ) にアクセスできます。

外部ストレージへのアクセス許可を持つアプリは、外部ストレージ上のすべてのものを利用できるため、フォルダーを保護することはできません。それについてあなたができることは何もありません。

于 2013-04-03T13:40:42.790 に答える