Pamięć elastyczna

Android zawsze obsługuje akcesoria pamięci zewnętrznej (takie jak karty SD), ale akcesoria te były kiedyś ograniczone do prostego przechowywania plików, ich spodziewaną nietrwałość oraz minimalną ochronę danych tradycyjnej pamięci zewnętrznej. W Androidzie 6.0 wprowadzono możliwość zastosować zewnętrzny nośnik pamięci masowej, aby działał jak wewnętrzna pamięci masowej.

Przy użyciu zewnętrznych nośników danych są one formatowane i szyfrowane tylko w celu jednocześnie z jednym urządzeniem z Androidem. Ponieważ media są silnie powiązane na urządzeniu z Androidem, na którym został zaakceptowany, może bezpiecznie przechowywać zarówno aplikacje, prywatnych danych wszystkich użytkowników.

Gdy użytkownik podłącza nowy nośnik pamięci (np. kartę SD) do modułu Android pyta ich, jak chcą korzystać z multimediów. Mogą zdecydować, samodzielnie zastosować multimedia, określić ich format i szyfrować je, czy nadal może z nich korzystać. w takiej postaci, w jakiej jest, aby przechowywać pliki. Jeśli zdecydują się na wdrożenie, platforma oferuje migruj zawartość podstawowej pamięci współdzielonej (zwykle jest instalowana /sdcard) w nowych mediach, co pozwala zwolnić cenne miejsce pamięci wewnętrznej. W przeciwieństwie do tradycyjnego miejsca na dane, którego rozmiar jest ograniczony do 2 TB ze względu na użycie MBR zastosowania pamięci dostosowywanej GPT Limit miejsca na pliki wynosi ok. 9 ZB.

Aplikacje można umieścić na przyjętym nośniku pamięci tylko wtedy, gdy deweloper ma wskazano wsparcie za pomocą atrybutu android:installLocation. Nowe instalacje obsługiwanych aplikacji są automatycznie umieszczane na z urządzenia pamięci masowej o największej ilości wolnego miejsca, a użytkownicy mogą przenieść obsługiwane aplikacje między urządzeniami pamięci masowej w aplikacji Ustawienia. Aplikacje przeniesione do przyjęcia gdy multimedia są zapamiętywane, i wróć, gdy nośnik zostanie włożony z powrotem.

Bezpieczeństwo

Platforma losowo generuje klucze szyfrowania dla każdego wdrożonego urządzenia i zapisuje je w pamięci wewnętrznej urządzenia z Androidem. Ten sprawia, że wdrożone nośniki są tak samo bezpieczne jak pamięć wewnętrzna. Klucze są powiązane z przyjętymi urządzeniami na podstawie przyjętych identyfikatorów GUID partycji.

Jeśli urządzenie jest skonfigurowane do szyfrowania opartego na plikach (FBE), w pamięci wewnętrznej, w pamięci uniwersalnej używa się zarówno FBE, jak i szyfrowania metadanych. W przeciwnym razie pamięć uniwersalna korzysta z pełnego dysku szyfrowaniem (FDE).

Układ dysku na nowym urządzeniu dokładnie odzwierciedla dane wewnętrzne. łącznie z etykietami SELinux itp. Jeśli tryb wielu użytkowników jest obsługiwany Android, nowe urządzenie pamięci masowej obsługuje również wielu użytkowników ten sam poziom izolacji co pamięć wewnętrzna.

Ponieważ zawartość używanego urządzenia pamięci masowej jest silnie powiązana z na urządzeniu z Androidem, na którym został zastosowany, klucze szyfrowania nie powinny być możliwe do wyodrębnienia. z urządzenia nadrzędnego, dlatego nie można podłączyć urządzenia pamięci masowej w innym miejscu.

Jeśli Twoje urządzenie korzysta z funkcji FBE, zapoznaj się z FBE dokumentacji i metadanych, dokumentacja dotycząca szyfrowania, która zawiera informacje na temat konfigurowania FBE i szyfrowania metadanych pamięci uniwersalnej.

Wydajność i stabilność

Tylko zewnętrzne nośniki pamięci masowej w stabilnych lokalizacjach, np. w gniazdku w komory na baterię lub za osłoną ochronną, należy uważać wdrożenia, aby zapobiec przypadkowej utracie lub uszkodzeniu danych. Przede wszystkim urządzeń połączonych z telefonem lub tabletem nigdy nie należy brać pod uwagę. Częstym wyjątkiem jest zewnętrzny dysk USB podłączony do telewizora. ponieważ cały telewizor jest zainstalowany w stabilnej lokalizacji.

Gdy użytkownik wdraża nowe urządzenie pamięci masowej, platforma przeprowadza test porównawczy porównuje jego wydajność z pamięcią wewnętrzną. Jeśli administrowane urządzenie to znacznie wolniej niż pamięć wewnętrzna, platforma ostrzega użytkownika gorsze wrażenia użytkownika. Ten test porównawczy pochodzi z rzeczywistego wejścia/wyjścia działania popularnych aplikacji na Androida. Obecnie implementacja AOSP obejmuje tylko ostrzegać użytkowników o przekroczeniu jednego progu, ale producenci urządzeń mogą to dostosować na przykład odrzucić rozpowszechnienie, jeśli karta działa bardzo wolno.

Zastosowane urządzenia muszą być sformatowane w systemie plików obsługującym POSIX. uprawnień i atrybutów rozszerzonych, takich jak ext4 czy f2fs Aby zapewnić optymalną wydajność, system plików f2fs jest zalecane w przypadku urządzeń pamięci flash.

Podczas okresowej konserwacji bezczynnej platformy występują problemy FI_TRIM do korzystania z multimediów, tak samo jak w przypadku pamięci wewnętrznej. Obecna specyfikacja karty SD nie obsługuje: DISCARD Command; ale jądro wraca do polecenia ERASE, które oprogramowanie karty SD może wykorzystać do optymalizacji.

Testowanie

Aby sprawdzić, czy pamięć adaptacyjna działa, uruchom ten test CTS:

cts-tradefed run commandAndExit cts-dev \
    -m CtsAppSecurityHostTestCases \
    -t android.appsecurity.cts.AdoptableHostTest

Aby zweryfikować działanie dysków USB i kart SD, gdy urządzenie nie ma lub gdy złącze USB jest używane do obsługi aktywnego narzędzia adb użyj kodu:

adb shell sm set-virtual-disk true