Android her zaman harici depolama aksesuarlarını (SD kartlar gibi) desteklemiştir, ancak bu aksesuarlar, beklenen süreksizlikleri ve geleneksel harici depolamaya sunulan minimum veri koruması nedeniyle geçmişte basit dosya depolama ile sınırlıydı. Android 6.0, dahili depolama gibi davranmak için 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 cihazına güçlü bir şekilde bağlı olduğundan, tüm kullanıcılar için hem uygulamaları hem de özel verileri güvenle depolayabilir.
Kullanıcılar kabul edilebilir bir konuma yeni depolama ortamı (SD kart gibi) taktığı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. Platform, benimsemeyi seçerlerse, birincil paylaşılan depolama içeriğini (tipik olarak /sdcard
) yeni benimsenen ortama geçirmeyi teklif ederek dahili depolamada değerli alan boşaltır. MBR kullanımı nedeniyle 2 TB ile sınırlı olan geleneksel depolamanın aksine, uyarlanabilir depolama GPT kullanır ve bu nedenle ~9ZB dosya depolama sınırına sahiptir.
Uygulamalar, yalnızca geliştirici android:installLocation
özniteliği aracılığıyla desteği belirttiğinde kabul edilen 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, desteklenen uygulamaları Ayarlar uygulamasında depolama cihazları arasında taşıyabilir. Kabul edilen ortama taşınan uygulamalar, medya çıkarılırken hatırlanır ve medya yeniden takıldığında geri döner.
Güvenlik
Platform, kabul edilen her cihaz için rastgele şifreleme anahtarları oluşturur ve bunları Android cihazının dahili deposunda saklar. Bu, benimsenen medyayı dahili depolama kadar güvenli hale getirir. Anahtarlar, benimsenen bölüm GUID'sine dayalı olarak benimsenen cihazlarla ilişkilendirilir.
Cihaz, dahili depolama alanında dosya tabanlı şifreleme (FBE) kullanacak şekilde yapılandırılmışsa, uyarlanabilir depolama hem FBE hem de meta veri şifrelemesini kullanır. Aksi takdirde, uyarlanabilir depolama, tam disk şifrelemesini (FDE) kullanır.
Kabul edilen cihazın disk üzerindeki düzeni, SELinux etiketleri vb. dahil olmak üzere dahili veri bölümünü yakından yansıtır. Android cihazda çoklu kullanıcı desteklendiğinde, benimsenen depolama cihazı dahili olarak aynı izolasyon düzeyine sahip çoklu kullanıcıyı da destekler. depolamak.
Kabul edilen bir depolama cihazının içeriği, onu benimseyen Android cihazına güçlü bir şekilde bağlı olduğundan, şifreleme anahtarları ana cihazdan çıkarılamaz ve bu nedenle depolama cihazı başka bir yere monte edilemez.
Cihazınız FBE kullanıyorsa, FBE'yi ve kabul edilebilir depolamada meta veri şifrelemesini nasıl yapılandıracağınızla ilgili olarak 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ölmesinin içindeki yuva veya koruyucu kapağın arkasındaki yuva gibi sabit konumlarda bulunan harici depolama ortamlarının benimsenmesi düşünülmelidir. Özellikle bir telefona veya tablete bağlanan USB cihazlarının evlat edinilmesi asla düşünülmemelidir. Genel bir istisna, TV tarzı bir cihaza bağlanan harici bir USB sürücüsü olabilir, çünkü TV'nin tamamı tipik olarak sabit bir yere kurulur.
Bir kullanıcı yeni bir depolama cihazı benimsediğinde, platform bir kıyaslama yapar ve performansını dahili depolama ile karşılaştırır. Kabul edilen cihaz dahili depolamadan önemli ölçüde daha yavaşsa, platform kullanıcıyı muhtemelen bozulmuş bir deneyim konusunda 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, kartın aşırı yavaş olması durumunda benimsemeyi tamamen reddetmek gibi bunu daha da uyarlayabilir.
Kabul edilen aygıtlar, POSIX izinlerini ve ext4
veya f2fs
gibi genişletilmiş öznitelikleri destekleyen bir dosya sistemiyle biçimlendirilmelidir. 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 depolama için yaptığı gibi, benimsenen ortama FI_TRIM
verir. Geçerli SD kart özelliği, DISCARD
komutunu desteklemiyor; ancak çekirdek bunun yerine SD kart üretici yazılımının optimizasyon amacıyla kullanmayı seçebileceği ERASE
komutuna geri döner.
Test yapmak
Kabul edilebilir depolamanın çalıştığını test etmek için bu CTS testini çalıştırın:
cts-tradefed run commandAndExit cts-dev \ -m CtsAppSecurityHostTestCases \ -t android.appsecurity.cts.AdoptableHostTest
Bir aygıtta yerleşik yuva olmadığında veya etkin bir adb bağlantısı için USB konektörü 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