2012-04-23 18 views
9

Grałem z Device Administration API na moim Pandaboardzie i wygląda na to, że metoda setStorageEncryption nie daje efektu, pomimo statusu zwróconego przez getStorageEncryption ma wartość TRUE.setStorageEncryption nie daje żadnego efektu

W przypadku płyty Panda pamięć wewnętrzna aplikacji jest fizycznie umieszczana gdzieś na wymiennej karcie pamięci flash (nie ma żadnej innej pamięci flash). Tak zrobiłem:

  1. Wywołanie setStorageEncryption (true) (DeviceAdminSample.java z przykładu ApiDemos).
  2. Sprawdź, czy szyfrowanie jest aktywne, wywołując metodę getStorageEncryption, getStorageEncryptionStatus i zapisz przykładowy plik w pamięci wewnętrznej.
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. Wyciąg z karty SD z Pandaboard, umieścić go w czytnik kart i skopiować całą zawartość do komputera

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

  2. spróbować znaleźć ciąg:

    $ grep -Ubo --binary-files = tekst prawdziwe Encryp cja”~/roboczy/flash_card.bin

    583576877: TRUE Encryption

Jak znaleźć ciąg robię do wniosku, że szyfrowanie nie jest na miejscu.

Czy w rzeczywistości setStorageEncryption włącza szyfrowanie lub żąda tylko szyfrowania, czy innymi słowy "deklaruje zamiar", aby zaszyfrować pamięć masową?

Odpowiedz

4

wierzę, trzeba zadzwonić następujący kod dodatkowo:

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

Zajęło z próbki administratora urządzenia.

Powiązane problemy