我在我的 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 是否启用了加密,或者它只请求加密,或者换句话说“声明你的意图”来加密存储?