Pandaboard でデバイス管理 API を試してみましたが、getStorageEncryption によって返されたステータスが TRUE であるにもかかわらず、setStorageEncryption メソッドが効果をもたらさないようです。
パンダ ボードの場合、アプリケーションの内部ストレージは物理的にリムーバブル フラッシュ カードのどこかに配置されます (他のフラッシュ ストレージはありません)。だから私は次のことをしました:
- setStorageEncryption(true) を呼び出します (ApiDemos の例の DeviceAdminSample.java)。
- getStorageEncryption、getStorageEncryptionStatus を呼び出して暗号化がアクティブであることを確認し、サンプル ファイルを内部ストレージに保存します。
if (mDPM.getStorageEncryption(mDeviceAdminSample)) {
string = "TRUE Encryption";
}
FileOutputStream fos = null;
fos = openFileOutput("hello_file.txt", Context.MODE_PRIVATE);
fos.write(string.getBytes());
fos.close();
Pandaboard から SD カードを取り出し、カード リーダーに挿入し、コンテンツ全体を PC にコピーします。
sudo dd if=/dev/sdc of=~/workspace/flash_card.bin
文字列を見つけてみてください:
$ grep -Ubo --binary-files=text 'TRUE Encryption' ~/workspace/flash_card.bin
583576877:真の暗号化
文字列が見つかったので、暗号化が行われていないという結論に達しました。
実際に setStorageEncryption は暗号化を有効にしますか、それとも暗号化を要求するだけですか、つまりストレージを暗号化する「意図を宣言」しますか?