Google is committed to advancing racial equity for Black communities. See how.
Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

Archiviazione adottabile

Android ha sempre supportato accessori di archiviazione esterni (come le schede SD), ma questi accessori erano storicamente limitati alla semplice archiviazione di file, a causa della loro impermanenza prevista e della protezione minima dei dati offerta alla tradizionale archiviazione esterna . Android 6.0 ha introdotto la possibilità di adottare supporti di memorizzazione esterni per agire come una memoria interna.

Quando viene adottato un supporto di archiviazione esterno, viene formattato e crittografato per funzionare solo con un singolo dispositivo Android alla volta. Poiché il supporto è fortemente legato al dispositivo Android che lo ha adottato, può archiviare in sicurezza sia le app che i dati privati ​​per tutti gli utenti.

Quando gli utenti inseriscono un nuovo supporto di memorizzazione (come una scheda SD) in una posizione adottabile, Android chiede loro come desiderano utilizzare il supporto. Possono scegliere di adottare il supporto, che lo formatta e lo crittografa, oppure possono continuare a utilizzarlo così com'è per una semplice archiviazione dei file. Se scelgono di adottare, la piattaforma offre la migrazione dei contenuti di archiviazione condivisa primaria (in genere montati su /sdcard ) sul supporto appena adottato, liberando spazio prezioso sulla memoria interna. A differenza dello storage tradizionale, che è limitato a 2 TB a causa del suo utilizzo di MBR , lo storage adottabile utilizza GPT e quindi ha un limite di archiviazione dei file di ~ 9ZB.

Le app possono essere collocate sul supporto di archiviazione adottato solo quando lo sviluppatore ha indicato il supporto tramite l'attributo android:installLocation . Le nuove installazioni delle app supportate vengono automaticamente posizionate sul dispositivo di archiviazione con più spazio libero e gli utenti possono spostare le app supportate tra i dispositivi di archiviazione nell'app Impostazioni . Le app spostate nel supporto adottato vengono ricordate mentre il supporto viene espulso e ritornano quando il supporto viene reinserito.

Sicurezza

La piattaforma genera casualmente chiavi di crittografia per ogni dispositivo adottato e le memorizza nella memoria interna del dispositivo Android. Ciò rende effettivamente il supporto adottato sicuro quanto la memoria interna. Le chiavi sono associate ai dispositivi adottati in base al GUID della partizione adottato.

Se il dispositivo è configurato per utilizzare la crittografia basata su file (FBE) sulla sua memoria interna, la memoria adottabile utilizza sia la crittografia FBE che la crittografia dei metadati . In caso contrario, l'archiviazione adottabile utilizza la crittografia dell'intero disco (FDE).

Il layout su disco del dispositivo adottato rispecchia fedelmente la partizione dati interna, comprese le etichette SELinux, ecc. Quando il multiutente è supportato sul dispositivo Android, il dispositivo di archiviazione adottato supporta anche il multiutente con lo stesso livello di isolamento interno Conservazione.

Poiché i contenuti di un dispositivo di archiviazione adottato sono fortemente legati al dispositivo Android che lo ha adottato, le chiavi di crittografia non dovrebbero essere estraibili dal dispositivo genitore, e quindi il dispositivo di archiviazione non può essere montato altrove.

Se il tuo dispositivo utilizza FBE, consulta la documentazione FBE e la documentazione sulla crittografia dei metadati per informazioni su come configurare FBE e la crittografia dei metadati sulla memoria adottabile.

Prestazioni e stabilità

Solo i supporti di memorizzazione esterni in posizioni stabili, come uno slot all'interno di un vano batteria o dietro una copertura protettiva, dovrebbero essere presi in considerazione per l'adozione per evitare la perdita o il danneggiamento accidentale dei dati. In particolare, i dispositivi USB collegati a un telefono o tablet non dovrebbero mai essere considerati per l'adozione. Un'eccezione comune sarebbe un'unità USB esterna collegata a un dispositivo in stile TV, poiché l'intera TV è in genere installata in una posizione stabile.

Quando un utente adotta un nuovo dispositivo di archiviazione, la piattaforma esegue un benchmark e confronta le sue prestazioni con la memoria interna. Se il dispositivo adottato è significativamente più lento della memoria interna, la piattaforma avvisa l'utente di una possibile esperienza degradata. Questo benchmark è stato derivato dal comportamento I / O effettivo delle app Android più diffuse. Attualmente, l'implementazione AOSP avviserà gli utenti solo oltre una singola soglia, ma i produttori di dispositivi potrebbero adattarla ulteriormente, ad esempio rifiutando completamente l'adozione se la scheda è estremamente lenta.

I dispositivi adottati devono essere formattati con un filesystem che supporti i permessi POSIX e gli attributi estesi, come ext4 o f2fs . Per prestazioni ottimali, il f2fs system f2fs è consigliato per i dispositivi di archiviazione basati su flash.

Quando si esegue la manutenzione periodica inattiva, la piattaforma FI_TRIM al supporto adottato proprio come fa per la memoria interna. L'attuale specifica della scheda SD non supporta il comando DISCARD ; ma il kernel invece ERASE comando ERASE , che il firmware della scheda SD può scegliere di utilizzare per scopi di ottimizzazione.

Test

Per verificare che l'archiviazione adottabile funzioni, esegui questo test CTS:

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

Per verificare il comportamento delle unità USB e delle schede SD quando un dispositivo non dispone di uno slot integrato o quando il connettore USB viene utilizzato per una connessione adb attiva, utilizzare:

adb shell sm set-virtual-disk true