setStorageEncryption不起作用

O.S*_*nko 9 java security encryption android

我在Pandaboard上玩过Device Administration API,看起来setStorageEncryption方法没有效果,尽管getStorageEncryption返回的状态为TRUE.

对于Panda板,应用程序内部存储器实际放置在可移动闪存卡上的某个位置(它没有任何其他闪存存储器).所以我做了以下事情:

  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();
Run Code Online (Sandbox Code Playgroud)
  1. 从Pandaboard中提取SD卡,将其放入读卡器并将整个内容复制到我的PC

    sudo dd if =/dev/sdc =〜/ workspace/flash_card.bin

  2. 试着找到字符串:

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

    583576877:TRUE加密

因为它发现字符串我得出的结论是没有加密.

实际上setStorageEncryption是否启用加密,或者它只请求加密,换句话说"声明你的意图"是否加密了存储?

Vic*_*nin 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);
Run Code Online (Sandbox Code Playgroud)

它取自设备管理示例。