Kabul edilebilir depolama

Android her zaman harici depolama aksesuarlarını (SD kartlar gibi) desteklemiştir, ancak bu aksesuarlar, beklenen geçicilikleri ve geleneksel harici depolamaya sunulan minimum veri koruması nedeniyle geçmişte basit dosya depolamayla sınırlıydı. Android 6.0, dahili depolama gibi davranacak şekilde harici depolama ortamını benimseme yeteneğini tanıttı.

Harici depolama ortamı benimsendiğinde, aynı anda yalnızca tek bir Android cihazla çalışacak şekilde biçimlendirilir ve şifrelenir. Medya, onu benimseyen Android cihaza güçlü bir şekilde bağlı olduğundan, tüm kullanıcılar için hem uygulamaları hem de özel verileri güvenli bir şekilde depolayabilir.

Kullanıcılar kabul edilebilir bir konuma yeni depolama ortamı (SD kart gibi) taktıklarında Android onlara medyayı nasıl kullanmak istediklerini sorar. Medyayı biçimlendiren ve şifreleyen medyayı benimsemeyi seçebilir veya basit dosya depolama için olduğu gibi kullanmaya devam edebilirler. Benimsemeyi tercih etmeleri halinde platform, birincil paylaşılan depolama içeriklerini (genellikle /sdcard konumuna monte edilir) yeni benimsenen ortama taşımayı teklif ederek dahili depolamada değerli alan tasarrufu sağlar. MBR kullanımı nedeniyle 2 TB ile sınırlı olan geleneksel depolamanın aksine, benimsenebilir depolama GPT kullanır ve bu nedenle ~9ZB dosya depolama sınırına sahiptir.

Uygulamalar, yalnızca geliştiricinin android:installLocation özelliği aracılığıyla desteği belirtmesi durumunda benimsenen depolama ortamına yerleştirilebilir. Desteklenen uygulamaların yeni yüklemeleri, en fazla boş alana sahip depolama cihazına otomatik olarak yerleştirilir ve kullanıcılar, Ayarlar uygulamasında desteklenen uygulamaları depolama cihazları arasında taşıyabilir. Kabul edilen ortama taşınan uygulamalar, medya çıkarıldığında hatırlanır ve medya yeniden yerleştirildiğinde geri döner.

Güvenlik

Platform, benimsenen her cihaz için rastgele şifreleme anahtarları oluşturur ve bunları Android cihazının dahili deposunda saklar. Bu, benimsenen medyayı etkili bir şekilde dahili depolama kadar güvenli hale getirir. Anahtarlar, benimsenen bölüm GUID'sine göre benimsenen cihazlarla ilişkilendirilir.

Cihaz, dahili deposunda dosya tabanlı şifreleme (FBE) kullanacak şekilde yapılandırılmışsa, benimsenebilir depolama hem FBE hem de meta veri şifrelemesini kullanır. Aksi takdirde, benimsenebilir depolama tam disk şifrelemesini (FDE) kullanır.

Benimsenen aygıtın disk üzerindeki düzeni, SELinux etiketleri vb. dahil olmak üzere dahili veri bölümünü yakından yansıtır. Android aygıtında çoklu kullanıcı desteklendiğinde, benimsenen depolama aygıtı aynı zamanda dahili olarak aynı izolasyon düzeyiyle çok kullanıcılıyı da destekler. depolamak.

Benimsenen bir depolama cihazının içeriği, onu benimseyen Android cihaza güçlü bir şekilde bağlı olduğundan, şifreleme anahtarları ana cihazdan çıkarılamamalıdır ve bu nedenle depolama cihazı başka bir yere monte edilemez.

Cihazınız FBE kullanıyorsa benimsenebilir depolamada FBE ve meta veri şifrelemesinin nasıl yapılandırılacağını öğrenmek için FBE belgelerine ve meta veri şifreleme belgelerine bakın.

Performans ve kararlılık

Yanlışlıkla veri kaybını veya bozulmasını önlemeye yardımcı olmak için yalnızca pil bölmesi içindeki veya koruyucu kapağın arkasındaki yuva gibi sabit konumlardaki harici depolama ortamlarının benimsenmesi düşünülmelidir. Özellikle, bir telefona veya tablete bağlanan USB cihazlarının asla benimsenmesi düşünülmemelidir. Yaygın bir istisna, TV'nin tamamı genellikle sabit bir konuma kurulduğundan, TV tarzı bir cihaza bağlanan harici bir USB sürücüsü olabilir.

Bir kullanıcı yeni bir depolama cihazını benimsediğinde, platform bir kıyaslama çalıştırır ve performansını dahili depolamayla karşılaştırır. Benimsenen cihaz dahili depolamadan önemli ölçüde daha yavaşsa platform, kullanıcıyı muhtemelen bozulmuş bir deneyime karşı uyarır. Bu kıyaslama, popüler Android uygulamalarının gerçek G/Ç davranışından türetilmiştir. Şu anda, AOSP uygulaması kullanıcıları yalnızca tek bir eşiğin ötesinde uyaracaktır, ancak cihaz üreticileri bunu daha da uyarlayabilir, örneğin kartın aşırı yavaş olması durumunda benimsemeyi tamamen reddetmek gibi.

Kabul edilen aygıtların, POSIX izinlerini ve ext4 veya f2fs gibi genişletilmiş öznitelikleri destekleyen bir dosya sistemiyle biçimlendirilmesi gerekir. Optimum performans için, flash tabanlı depolama aygıtlarında f2fs dosya sistemi önerilir.

Periyodik boşta bakım gerçekleştirirken platform, tıpkı dahili depolamada yaptığı gibi FI_TRIM benimsenen medyaya yayınlar. Mevcut SD kart spesifikasyonu DISCARD komutunu desteklemiyor; ancak çekirdek bunun yerine SD kart yazılımının optimizasyon amacıyla kullanmayı seçebileceği ERASE komutuna geri döner.

Test yapmak

Benimsenebilir depolamanın çalıştığını test etmek için şu CTS testini çalıştırın:

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

Bir cihazın yerleşik bir yuvası olmadığında veya USB konektörü etkin bir adb bağlantısı için kullanıldığında USB sürücülerin ve SD kartların davranışını doğrulamak için şunu kullanın:

adb shell sm set-virtual-disk true