SDCardFS jest wycofany na urządzeniach z Androidem w wersji 11 lub nowszej i jądrem w wersji 5.4 lub nowszej. W przypadku takich urządzeń testowanie VTS nie zezwala na zamontowane systemy plików wymienione jako SDCardFS. Urządzenia z Androidem 11 lub nowszym, ale z jądrem w wersji 4.19 lub starszej, mogą nadal korzystać z SDCardFS, ale Google nie zapewnia dodatkowej pomocy.
Przed wycofaniem SDCardFS umożliwiał kontrolowanie dostępu do emulowanej pamięci wewnętrznej i zewnętrznych kart SD, umożliwiając aplikacjom dostęp tylko do danych, które ich dotyczą. Dodatkowo zapewnia ona odporność na wielkość liter, a także umożliwia śledzenie miejsca na dane.
Funkcja zastępcza SDCardFS
Zamiennik SDCardFS korzysta z kilku funkcji systemu plików jądra Linuksa, aby osiągnąć podobne wyniki. Wielkość liter jest obsługiwana bezpośrednio przez system plików. Dzięki temu czas wyszukiwania jest prawie identyczny w przypadku folderów z uwzględnieniem wielkości liter i bez uwzględnienia wielkości liter, co eliminuje problemy z wydajnością w przypadku dużych folderów w SDCardFS. Śledzenie limitów, które SDCardFS wykorzystywało do szybkiego zbierania danych o pamięci dla ustawień, jest teraz konfigurowane w przestrzeni użytkownika za pomocą limitów projektu. W niektórych kontekstach, w których liczy się wydajność, katalogi są montowane na miejscu. Nowa implementacja FUSE zapewnia ograniczone miejsce na dane w celu bezpośredniego dostępu do systemu plików, głównie w celu pomijania informacji o lokalizacji.
Konfigurowanie funkcji wymiany karty SD
Aby włączyć limity projektu i zwijanie wielkości liter w przypadku emulowanej pamięci bez SDCardFS na urządzeniu z Androidem 11 lub nowszym, odziedź z emulated_storage.mk
w pliku device.mk
:
$(call inherit-product, $(SRC_TARGET_DIR)/product/emulated_storage.mk)
Ostrzeżenie: nie rób tego na urządzeniach z Androidem 10 lub starszym, ponieważ natywny brak uwzględniania wielkości liter w systemie plików jest niezgodny z ustawieniami szyfrowania na poziomie plików używanymi na takich urządzeniach. Na takich urządzeniach należy nadal używać SDCardFS.
Powody wycofania karty SDFS
Istnieją różne powody, dla których SDCardFS staje się przestarzały.
Stabilność
SDCardFS ma problemy z kilkoma warunkami wyścigu dotyczącymi rozróżniania wielkości liter, a także z kilkoma problemami związanymi z niską ilością pamięci. W dużych katalogach wyszukiwanie z ignorowaniem wielkości liter może być dość powolne, ponieważ musi ono przejść przez katalogi podrzędne, aby znaleźć alternatywne przypadki. Dostęp do górnego i dolnego systemu plików w tym samym czasie może też powodować problemy.
Parytet u źródła
SDCardFS wymaga dodatkowych poprawek w VFS, aby umożliwić zmianę opcji bind mount. Te poprawki wymagają dodatkowej pracy, aby zaakceptować zmiany w tych obszarach. Funkcje SDCardFS mogą być powielane przez komponenty nadrzędne, co eliminuje ten problem.
Równość funkcji z interfejsem API
W poprzedniej wersji Androida ograniczony dostęp do określonych typów metadanych zapewniał ograniczony magazyn danych. Bezpośredni dostęp do pamięci przez SDCardFS nie obsługuje tych funkcji ograniczonego dostępu do pamięci.