【问题标题】:setStorageEncryption produces no effectsetStorageEncryption 不产生任何效果
【发布时间】:2012-05-04 02:58:43
【问题描述】:

我在我的 Pandaboard 上使用过设备管理 API,尽管 getStorageEncryption 返回的状态为 TRUE,但 setStorageEncryption 方法似乎没有任何效果。

对于 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 加密

当它找到字符串时,我得出结论,没有加密。

setStorageEncryption 是否确实启用了加密,或者它只请求加密,或者换句话说“声明您的意图”来加密存储?

【问题讨论】:

    标签: java android security encryption


    【解决方案1】:

    我相信您必须另外调用以下代码:

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

    取自设备管理示例。

    【讨论】:

      猜你喜欢
      • 2013-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多