Wycofanie SDCardFS

SDCardFS jest wycofywany na urządzeniach, które są wprowadzane na rynek z Androidem 11 lub nowszym i mają jądro w wersji 5.4 lub nowszej. Na takich urządzeniach testowanie VTS nie zezwala na montowanie systemów plików wymienionych jako SDCardFS. Urządzenia, które są wprowadzane na rynek z Androidem 11 lub nowszym, ale mają wersję jądra 4.19 lub starszą, mogą nadal korzystać z SDCardFS, ale Google nie zapewnia dodatkowego wsparcia.

Przed wycofaniem SDCardFS umożliwiał kontrolowanie dostępu do emulowanej pamięci wewnętrznej i zewnętrznych kart SD, dzięki czemu aplikacje mogły uzyskiwać dostęp tylko do danych, które są dla nich istotne. Dodatkowo zapewniał warstwę ignorowania wielkości liter oraz dodatkowe śledzenie miejsca na dane.

Funkcje zastępujące SDCardFS

Funkcje zastępujące SDCardFS wykorzystują kilka funkcji systemu plików jądra Linuksa, aby osiągnąć podobne rezultaty. Ignorowanie wielkości liter jest obsługiwane bezpośrednio przez system plików. Dzięki temu czasy wyszukiwania są niemal identyczne w folderach z uwzględnianiem i bez uwzględniania wielkości liter, co eliminuje spowolnienie w przypadku dużych folderów w SDCardFS. Śledzenie limitów, które SDCardFS wykonywał w celu szybkiego zbierania danych o miejscu na dane na potrzeby ustawień, jest teraz konfigurowane z przestrzeni użytkownika za pomocą limitów projektu. W niektórych kontekstach, w których wydajność jest ważna, katalogi są montowane w miejscu. Nowa implementacja FUSE zapewnia ograniczony dostęp do miejsca na dane w celu bezpośredniego dostępu do systemu plików, głównie na potrzeby usuwania informacji o lokalizacji.

Konfigurowanie funkcji zastępujących SDCard

Aby włączyć limity projektu i składanie wielkości liter w przypadku emulowanej pamięci bez SDCardFS na urządzeniu, które zostało wprowadzone na rynek z Androidem 11 lub nowszym, odziedzicz 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 które zostały wprowadzone na rynek z Androidem 10 lub starszym, ponieważ natywne ignorowanie wielkości liter w systemie plików jest niezgodne z ustawieniami szyfrowania plików używanymi na takich urządzeniach. Na takich urządzeniach konieczne jest dalsze korzystanie z SDCardFS.

Powody wycofania SDCardFS

Istnieje kilka powodów wycofania SDCardFS.

Stabilność

SDCardFS ma kilka warunków wyścigu dotyczących wielkości liter, a także kilka problemów związanych z małą ilością pamięci. Wyszukiwanie bez uwzględniania wielkości liter może być dość wolne w dużych katalogach, ponieważ wyszukiwanie musi przejść przez niższy katalog, aby znaleźć alternatywne przypadki. Dostęp do górnego i dolnego systemu plików w tym samym czasie może również powodować problemy.

Parzystość na wyższym poziomie

SDCardFS wymaga dodatkowych poprawek do VFS, aby obsługiwać zmianę opcji w przypadku montowania. Te poprawki powodują dodatkową pracę związaną z akceptowaniem zmian na wyższym poziomie w tych obszarach. Funkcje SDCardFS można replikować za pomocą komponentów na wyższym poziomie, co eliminuje ten problem.

Parzystość funkcji z interfejsem API

W poprzedniej wersji Androida ograniczony dostęp do miejsca na dane ograniczał dostęp do określonych typów metadanych. Bezpośredni dostęp do pamięci przez SDCardFS nie obsługuje tych funkcji ograniczonego dostępu do miejsca na dane.