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, które mają jądro w wersji 4.19 lub starszej, mogą nadal korzystać z SDCardFS, ale Google nie zapewnia dodatkowej pomocy.
Przed wycofaniem SDCardFS umożliwiał kontrolę dostępu do emulowanej pamięci wewnętrznej i zewnętrznych kart SD, dzięki czemu aplikacje miały dostęp tylko do odpowiednich danych. Dodatkowo zapewnia ona odporność na wielkość liter, a także umożliwia śledzenie miejsca na dane.
Funkcja wymiany SDCardFS
Zastępowanie plików SDCardFS korzysta z kilku funkcji systemu plików Linuksa, aby uzyskać podobne wyniki. Wielkość liter nie jest rozróżniana bezpośrednio przez system plików. Dzięki temu czasy wyszukiwania w folderach, w których jest rozróżniana wielkość liter i w których nie jest ona rozróżniana, są usuwane. Śledzenie limitów, które SDCardFS wykorzystywało do szybkiego zbierania danych o miejscu na dane 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 do 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 plików używanymi na takich urządzeniach. Na takich urządzeniach trzeba nadal korzystać z SDCardFS.
Powody wycofania karty SDFS
Istnieją różne powody, dla których rezygnujemy z SDCardFS.
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. Wyszukiwanie z ignorowaniem wielkości liter w przypadku dużych katalogów może być dość powolne, ponieważ wyszukiwanie musi 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 również powodować problemy.
Parytet przesyłania
SDCardFS wymaga dodatkowych poprawek w VFS, aby umożliwić zmianę opcji bind mount. Te poprawki powodują wykonanie dodatkowych czynności przy akceptowanie zmian na poziomie początkowym w tych obszarach. Funkcje SDCardFS mogą być replikowane przez komponenty nadrzędne, co eliminuje ten problem.
Spójność funkcji w interfejsie 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 zakresu pamięci.