2012-04-23 101 views
9

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

在熊猫板的情况下,应用程序内部存储实际上放置在可移动闪存卡(它没有任何其他闪存)的某处。所以我做了以下几点:

  1. 调用setStorageEncryption(true)(DeviceAdminSample.java来自ApiDemos示例)。
  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卡,放入读卡器,如果=的/ dev /全部内容复制到我的电脑

    须藤DD的SDC =〜 /workspace/flash_card.bin

  2. 试图找到字符串:

    $ grep的-Ubo --binary-文件=文本“TRUE密型重刑”〜/工作区/ flash_card.bin

    583576877:真正加密

当它找到字符串我做一个结论,即没有加密到位。

实际上setStorageEncryption是否启用加密,或者它只需要加密或者换句话说“声明你的意图”来加密存储?

回答

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

它从设备管理样本取。