Dahili hale getirilebilir depolama alanı

Android, harici depolama aksesuarlarını (SD kartlar gibi) her zaman desteklemiştir. Ancak bu aksesuarlar, beklenmedik bir şekilde çalışmayı durdurma olasılıkları ve geleneksel harici depolama için sunulan minimum veri koruması nedeniyle geçmişte basit dosya depolamayla sınırlıydı. Android 6.0, harici depolama medyasını dahili depolama gibi kullanabilme özelliğini kullanıma sundu.

Harici depolama ortamı, tek seferde yalnızca tek bir Android cihazda çalışacak şekilde biçimlendirilir ve şifrelenir. Medya, onu kullanan Android cihaza sıkı sıkıya bağlı olduğundan hem uygulamaları hem de tüm kullanıcıların gizli verilerini güvenli bir şekilde saklayabilir.

Kullanıcılar, yeni depolama ortamını (ör. SD kart) kullanılabilir bir konuma taktığında Android, medyayı nasıl kullanmak istediklerini sorar. Medyayı biçimlendirip şifreleyen bir çözümü benimseyebilir veya basit dosya depolama için olduğu gibi kullanmaya devam edebilirler. Kullanıcılar bu özelliği kullanmayı tercih ederse platform, birincil paylaşılan depolama alanı içeriklerini (genellikle /sdcard konumuna monte edilir) yeni benimsenen medyaya taşımayı teklif eder. Bu sayede, dahili depolama alanında değerli alan açılır. MBR kullanması nedeniyle 2 TB ile sınırlı olan geleneksel depolama alanının aksine, benimsenebilir depolama alanı GPT kullandığından dosya depolama alanı sınırı yaklaşık 9 ZB'dir.

Uygulamalar, yalnızca geliştirici android:installLocation özelliği aracılığıyla destek belirttiğinde benimsenen depolama medyasına yerleştirilebilir. Desteklenen uygulamaların yeni yüklemeleri, en fazla boş alana sahip depolama cihazına otomatik olarak yerleştirilir. Kullanıcılar, desteklenen uygulamaları Ayarlar uygulamasında depolama cihazları arasında taşıyabilir. Kabul edilen medyaya taşınan uygulamalar, medya çıkarılırken hatırlanır ve medya yeniden takıldığında geri gelir.

Güvenlik

Platform, her benimsenen cihaz için rastgele şifreleme anahtarları oluşturur ve bunları Android cihazın dahili depolama alanında saklar. Bu sayede, benimsenen medya dahili depolama kadar güvenli hale gelir. Anahtarlar, benimsenen bölüm GUID'sine göre benimsenen cihazlarla ilişkilendirilir.

Cihaz, dahili depolama alanında dosya tabanlı şifreleme (FBE) kullanacak şekilde yapılandırılmışsa uyarlanabilir depolama alanı hem FBE hem de meta veri şifrelemeyi kullanır. Aksi takdirde, uyarlanabilir depolama alanı tam disk şifrelemesi (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 çok kullanıcılı desteklendiği durumlarda, kabul edilen depolama cihazı da dahili depolama alanıyla aynı düzeyde yalıtımı olan çok kullanıcılı desteği de sunar.

Kabul edilen bir depolama cihazının içeriği, onu kabul eden Android cihaza sıkı sıkıya bağlı olduğundan şifreleme anahtarları ana cihazdan çıkarılamaz. Bu nedenle, depolama cihazı başka bir yere monte edilemez.

Cihazınızda FBE kullanılıyorsa FBE ve meta veri şifrelemenin, kullanılabilir depolama alanında nasıl yapılandırılacağıyla ilgili FBE dokümanlarına ve meta veri şifreleme dokümanlarına bakın.

Performans ve kararlılık

Yanlışlıkla veri kaybını veya bozulmasını önlemek için yalnızca pil bölmesinin içindeki bir yuva veya koruyucu kılıfın arkasında gibi sabit konumlarda bulunan harici depolama ortamları kullanılmalıdır. Özellikle telefon veya tablete bağlı USB cihazlar hiçbir zaman kabul edilmemelidir. TV'nin tamamı genellikle sabit bir yere yerleştirildiği için TV tarzı bir cihaza bağlı harici USB sürücü, bu kuralın yaygın bir istisnası olarak kabul edilir.

Kullanıcı yeni bir depolama cihazı kullandığında platform bir karşılaştırma testi yapar ve performansını dahili depolama alanıyla karşılaştırır. Kullanılan cihaz dahili depolamaya kıyasla önemli ölçüde daha yavaşsa platform, kullanıcıyı deneyimin bozulabileceği konusunda uyarır. Bu karşılaştırma, popüler Android uygulamalarının gerçek G/Ç davranışından türetilmiştir. Şu anda AOSP uygulaması, yalnızca tek bir eşiğin üzerinde olan kullanıcıları uyarıyor ancak cihaz üreticileri bunu daha da uyarlayabilir (ör. kart çok yavaşsa kullanımı tamamen reddedebilir).

Kabul edilen cihazlar, POSIX izinlerini ve genişletilmiş özellikleri (ör. ext4 veya f2fs) destekleyen bir dosya sistemiyle biçimlendirilmelidir. Optimum performans için flash tabanlı depolama cihazlarında f2fs dosya sistemi önerilir.

Platform, periyodik boşta bakım işlemi gerçekleştirirken, dahili depolama alanında olduğu gibi benimsenen medyaya da FI_TRIM gönderir. Mevcut SD kart spesifikasyonu DISCARD komutunu desteklemez. Bunun yerine çekirdek, SD kart donanım yazılımının optimizasyon amacıyla kullanmayı seçebileceği ERASE komutuna geri döner.

Test

Uyarlanabilir depolama alanını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 cihazda yerleşik yuva olmadığında veya USB konnektö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 şunları kullanın:

adb shell sm set-virtual-disk true