2012-04-23 7 views
9

He jugado con la API de administración de dispositivos en mi Pandaboard y parece que el método setStorageEncryption no produce ningún efecto, a pesar del estado devuelto por getStorageEncryption es VERDADERO.setStorageEncryption no produce ningún efecto

En el caso de la placa Panda, el almacenamiento interno de la aplicación se coloca físicamente en algún lugar de la tarjeta flash extraíble (no tiene ningún otro almacenamiento flash). Así que hice lo siguiente:

  1. Llamar a setStorageEncryption (true) (DeviceAdminSample.java del ejemplo de ApiDemos).
  2. Verifique que el cifrado esté activo llamando a getStorageEncryption, getStorageEncryptionStatus y guarde un archivo de ejemplo en el almacenamiento interno.
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. Extracto de la tarjeta SD de la PandaBoard, lo puso en el lector de tarjetas y copiar todo el contenido de mi PC

    sudo dd if =/dev/sdc de = ~ /workspace/flash_card.bin

  2. tratar de encontrar la cadena:

    $ grep -Ubo --binary-archivos de texto = 'TRUE Encryp ción' ~/espacio de trabajo/flash_card.bin

    583576877: Cifrado VERDADERO

Como se encuentra la cadena hago una conclusión de que ningún cifrado está en su lugar.

¿Realmente setStorageEncryption habilita el cifrado o solo solicita cifrado o, en otras palabras, "declara su intención" de cifrar el almacenamiento?

Respuesta

4

creo que usted tiene que llamar siguiente código adicionalmente:

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

se toma de la muestra de administración de dispositivos.

Cuestiones relacionadas