淘汰 SDCardFS

在搭載 Android 11 以上版本且執行核心版本 5.4 以上版本的裝置上,已淘汰 SDCardFS。在這種裝置上,VTS 測試不允許掛載的檔案系統列為 SDCardFS。搭載 搭載 Android 11 以上版本,但執行核心版本 4.19 或 仍可繼續使用 SDCardFS,不過 Google 不再提供 聯絡。

在停用前,SDCardFS 提供一種方法,可控制對模擬內部儲存空間和外部 SD 卡的存取權,讓應用程式只存取與其相關的資料。此外,API 還提供了一層大小寫判斷機制 以及一些額外的儲存空間追蹤

SDCardFS 替換功能

取代 SDCardFS 會使用幾項 Linux kernel 檔案系統功能來 並獲得類似成果區分大小寫的功能會直接由檔案系統處理,因此在區分大小寫和不區分大小寫的資料夾中,查詢時間幾乎相同,可消除 SDCardFS 中大型資料夾的速度變慢問題。 SDCardFS 的配額追蹤功能,用於快速收集 設定完成後,即可使用專案配額從使用者空間進行設定。在某些效能敏感的情況下,目錄會綁定掛接到適當位置。新的 FUSE 實作為直接存取檔案系統提供限定範圍儲存空間。 主要用於遮蓋地點資訊。

設定 SD 卡替換功能

在不使用 SDCardFS 的情況下,針對模擬儲存空間啟用專案配額和案例折疊功能 使用者的裝置搭載 Android 11 以上版本 繼承自 device.mk 檔案中的 emulated_storage.mk

$(call inherit-product, $(SRC_TARGET_DIR)/product/emulated_storage.mk)

警告:在搭載 Android 10 以下版本的裝置上執行這項操作,因為檔案系統原生大小寫不敏感性與這些裝置上使用的檔案型加密設定不相容。如要繼續使用 SDCardFS 在裝置上使用您的應用程式

棄用 SDCardFS 的原因

淘汰 SDCardFS 有許多原因。

穩定性

SDCardFS 會發生幾種與大小寫敏感性相關的競爭狀況,以及一些與記憶體不足情況相關的問題。不區分大小寫 查詢速度可能比較慢,因為查詢必須逐步包含 下尋找替代案件同時存取上層和下層檔案系統也會導致問題。

上游對應

SDCardFS 需要 VFS 額外的修補程式,才能支援 透過這種方式這些修補程式會導致額外工作接受上游變更 在這些領域中SDCardFS 的功能可由上游元件複製,因此可解決這個問題。

與 API 的功能一致

先前的 Android 版本,限定範圍儲存空間對特定 特定類型的中繼資料透過 SDCardFS 直接存取儲存空間時,不支援這些方式 限定範圍儲存空間功能