2012-04-23 2 views
9

Я играл с API-интерфейсом Device Administration на моем Pandaboard, и кажется, что метод setStorageEncryption не производит никакого эффекта, несмотря на то, что getStorageEncryption имеет статус TRUE.setStorageEncryption не производит никакого эффекта

В случае платы Panda внутренняя память приложения физически размещена где-то на съемной флеш-карте (у нее нет другой флэш-памяти). Поэтому я сделал следующее:

  1. Call 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. Извлеките SD-карту из Pandaboard, поместите его в кард-ридер и скопировать все содержимое на мой компьютер

    Судо дд, если =/DEV/SDC о = ~ /workspace/flash_card.bin

  2. пытаются найти строку:

    $ Grep -Ubo --binary-файлов = текст «ИСТИНА Encryp Тион»~/рабочее пространство/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); 

Это взято из устройства админ образца.

Смежные вопросы