我在我的Pandaboard上尝试使用设备管理API,并发现setStorageEncryption方法没有效果,尽管getStorageEncryption返回的状态为TRUE。
在Panda板的情况下,应用程序内部存储物理上位于可移动闪存卡上(它没有其他闪存存储)。因此,我执行了以下操作:
1. 调用setStorageEncryption(true)(来自ApiDemos示例的DeviceAdminSample.java)。 2. 通过调用getStorageEncryption、getStorageEncryptionStatus验证加密是否已激活,并在内部存储中保存一个示例文件。
在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();
从Pandaboard取出SD卡,放入读卡器并将所有内容复制到我的电脑
sudo dd if=/dev/sdc of=~/workspace/flash_card.bin
尝试查找字符串:
$ grep -Ubo --binary-files=text 'TRUE Encryption' ~/workspace/flash_card.bin
583576877:TRUE Encryption
由于找到了这个字符串,我得出结论:没有进行加密。
setStorageEncryption实际上会启用加密吗?还是只是请求加密或者说“声明您的意图”要对存储进行加密?