setStorageEncryption没有产生任何效果。

9
我在我的Pandaboard上尝试使用设备管理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();
  1. 从Pandaboard取出SD卡,放入读卡器并将所有内容复制到我的电脑

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

  2. 尝试查找字符串:

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

    583576877:TRUE Encryption

由于找到了这个字符串,我得出结论:没有进行加密。

setStorageEncryption实际上会启用加密吗?还是只是请求加密或者说“声明您的意图”要对存储进行加密?

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);

这是从设备管理员示例中提取的代码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接