9

Pandaboard でデバイス管理 API を試してみましたが、getStorageEncryption によって返されたステータスが TRUE であるにもかかわらず、setStorageEncryption メソッドが効果をもたらさないようです。

パンダ ボードの場合、アプリケーションの内部ストレージは物理的にリムーバブル フラッシュ カードのどこかに配置されます (他のフラッシュ ストレージはありません)。だから私は次のことをしました:

  1. setStorageEncryption(true) を呼び出します (ApiDemos の例の DeviceAdminSample.java)。
  2. 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();
  1. Pandaboard から SD カードを取り出し、カード リーダーに挿入し、コンテンツ全体を PC にコピーします。

    sudo dd if=/dev/sdc of=~/workspace/flash_card.bin

  2. 文字列を見つけてみてください:

    $ grep -Ubo --binary-files=text 'TRUE Encryption' ~/workspace/flash_card.bin

    583576877:真の暗号化

文字列が見つかったので、暗号化が行われていないという結論に達しました。

実際に setStorageEncryption は暗号化を有効にしますか、それとも暗号化を要求するだけですか、つまりストレージを暗号化する「意図を宣言」しますか?

4

1 に答える 1

4

さらに次のコードを呼び出す必要があると思います:

// Launch the activity to activate encryption.  May or may not return!
Intent intent = new Intent(DevicePolicyManager.ACTION_START_ENCRYPTION);
startActivityForResult(intent, REQUEST_CODE_START_ENCRYPTION);

これは、デバイス管理サンプルから取得されます。

于 2012-08-16T20:40:26.207 に答える