Google setzt sich dafür ein, die Rassengerechtigkeit für schwarze Gemeinschaften zu fördern. Siehe wie.
Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Adoptable Storage

Android hat immer externes Speicherzubehör (z. B. SD-Karten) unterstützt. Dieses Zubehör war jedoch aufgrund seiner erwarteten Unbeständigkeit und des minimalen Datenschutzes, der herkömmlichem externem Speicher geboten wird, historisch auf einfachen Dateispeicher beschränkt. Mit Android 6.0 wurde die Möglichkeit eingeführt , externe Speichermedien als internen Speicher zu verwenden.

Wenn externe Speichermedien verwendet werden, werden diese so formatiert und verschlüsselt, dass sie jeweils nur mit einem einzelnen Android-Gerät funktionieren. Da das Medium stark an das Android-Gerät gebunden ist, das es übernommen hat, können sowohl Apps als auch private Daten für alle Benutzer sicher gespeichert werden.

Wenn Benutzer neue Speichermedien (z. B. eine SD-Karte) an einem geeigneten Ort einlegen, werden sie von Android gefragt, wie sie die Medien verwenden möchten. Sie können wählen, ob das Medium übernommen, formatiert und verschlüsselt werden soll, oder es weiterhin unverändert für die einfache Dateispeicherung verwenden. Wenn sie sich für eine /sdcard entscheiden, bietet die Plattform an, die primären gemeinsam genutzten Speicherinhalte (normalerweise auf /sdcard ) auf die neu übernommenen Medien zu migrieren, um wertvollen Speicherplatz auf dem internen Speicher /sdcard . Im Gegensatz zu herkömmlichem Speicher, der aufgrund der Verwendung von MBR auf 2 TB beschränkt ist, verwendet akzeptabler Speicher GPT und hat daher ein Dateispeicherlimit von ~ 9 KB.

Apps können nur dann auf übernommenen Speichermedien abgelegt werden, wenn der Entwickler über das Attribut android:installLocation die Unterstützung angegeben hat. Neuinstallationen unterstützter Apps werden automatisch auf dem Speichergerät mit dem meisten freien Speicherplatz platziert, und Benutzer können unterstützte Apps in der App " Einstellungen" zwischen Speichergeräten verschieben. Apps, die auf angenommene Medien verschoben wurden, werden beim Auswerfen des Mediums gespeichert und beim erneuten Einlegen des Mediums zurückgegeben.

Sicherheit

Die Plattform generiert zufällig Verschlüsselungsschlüssel für jedes angenommene Gerät und speichert sie im internen Speicher des Android-Geräts. Dies macht die verwendeten Medien effektiv so sicher wie den internen Speicher. Schlüssel werden angenommenen Geräten basierend auf der angenommenen Partitions-GUID zugeordnet.

Wenn das Gerät für die Verwendung der dateibasierten Verschlüsselung (FBE) in seinem internen Speicher konfiguriert ist, verwendet der anwendbare Speicher sowohl die FBE- als auch die Metadatenverschlüsselung . Andernfalls verwendet der akzeptable Speicher die Festplattenverschlüsselung (FDE).

Das On-Disk-Layout des verwendeten Geräts spiegelt die interne Datenpartition, einschließlich SELinux-Labels usw., genau wider. Wenn auf dem Android-Gerät Mehrbenutzer unterstützt werden, unterstützt das verwendete Speichergerät auch Mehrbenutzer mit der gleichen Isolationsstufe wie das interne Lager.

Da der Inhalt eines übernommenen Speichergeräts stark an das Android-Gerät gebunden ist, das es übernommen hat, sollten die Verschlüsselungsschlüssel nicht vom übergeordneten Gerät extrahiert werden können, und daher kann das Speichergerät nicht an anderer Stelle bereitgestellt werden.

Wenn Ihr Gerät FBE verwendet, finden Sie in der FBE-Dokumentation und in der Dokumentation zur Metadatenverschlüsselung Informationen zum Konfigurieren der FBE- und Metadatenverschlüsselung für einen akzeptablen Speicher.

Leistung und Stabilität

Nur externe Speichermedien an stabilen Orten, wie z. B. einem Steckplatz in einem Batteriefach oder hinter einer Schutzabdeckung, sollten zur Übernahme in Betracht gezogen werden, um versehentlichen Datenverlust oder Beschädigung zu vermeiden. Insbesondere USB-Geräte, die an ein Telefon oder Tablet angeschlossen sind, sollten niemals für eine Übernahme in Betracht gezogen werden. Eine häufige Ausnahme wäre ein externes USB-Laufwerk, das an ein Fernsehgerät angeschlossen ist, da das gesamte Fernsehgerät normalerweise an einem stabilen Ort installiert ist.

Wenn ein Benutzer ein neues Speichergerät einführt, führt die Plattform einen Benchmark aus und vergleicht seine Leistung mit dem internen Speicher. Wenn das verwendete Gerät erheblich langsamer als der interne Speicher ist, warnt die Plattform den Benutzer vor einer möglicherweise verschlechterten Erfahrung. Dieser Benchmark wurde aus dem tatsächlichen E / A-Verhalten beliebter Android-Apps abgeleitet. Gegenwärtig warnt die AOSP-Implementierung Benutzer nur über einen einzigen Schwellenwert hinaus, aber Gerätehersteller können dies weiter anpassen, z. B. die Annahme vollständig ablehnen, wenn die Karte extrem langsam ist.

Angenommene Geräte müssen mit einem Dateisystem formatiert sein, das POSIX-Berechtigungen und erweiterte Attribute wie ext4 oder f2fs . Für eine optimale Leistung wird das f2fs Dateisystem für Flash-basierte Speichergeräte empfohlen.

Bei der regelmäßigen Wartung im Leerlauf gibt die Plattform FI_TRIM an übernommene Medien aus, genau wie dies für den internen Speicher der Fall ist. Die aktuelle SD-Kartenspezifikation unterstützt den Befehl DISCARD . Der Kernel ERASE jedoch stattdessen auf den Befehl ERASE zurück, den die SD-Karten-Firmware möglicherweise für Optimierungszwecke verwendet.

Testen

Führen Sie diesen CTS-Test aus, um zu testen, ob der anpassbare Speicher funktioniert:

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

Verwenden Sie Folgendes, um das Verhalten von USB-Laufwerken und SD-Karten zu überprüfen, wenn ein Gerät keinen integrierten Steckplatz hat oder wenn der USB-Anschluss für eine aktive ADB-Verbindung verwendet wird:

adb shell sm set-virtual-disk true