Я знаю, что на рутированном телефоне вполне нормально создать небольшой раздел ext4 для использования App2SD, но я не спрашиваю об этом случае: у меня есть HTC Desire без рута, на котором работает Froyo, и я хотел бы отформатировать вся моя SD-карта как ext4 вместо FAT. Я знаю, что это будет означать, что ПК с Windows не смогут использовать карту, но все мои ПК работают под управлением Linux, поэтому с ними все должно быть в порядке. Сможет ли телефон получить доступ и использовать карту в этом случае?
ext4 должен поддерживаться, если у вас есть обновление до Android 2.3 или 3.0 (я вижу, что ваш пост написан непосредственно перед выпусками 2.3 и 3.0...).
... и когда btrFS добавляется в Android, у него есть хороший вариант монтирования ",ssd" с выравниванием износа и т. д., которого нет у ext4... и теперь более высокая скорость, чем у ext4, особенно если вы используете ",compress =lzo" ИЛИ ",space_cache" в fstab (но не используйте сжатие ВМЕСТЕ с параметром space_cache, используйте только 1 или другой, иначе в некоторых тестах он замедляется) - и эта скорость достигается, несмотря на контрольную сумму btrFS всех данные (не только журналов, как это делает ext4). :-)
На самом деле у меня была SD-карта на ext4, и я установил ее постоянно во время загрузки (у меня есть root на моем телефоне).
Самая большая проблема заключалась в том, что приложения не ожидают проверки разрешений на /sdcard, но extX обеспечивает это (без опции монтирования). Поэтому, если одно приложение хранит, например, какой-то звук и вызывает другой подкомпонент для его воспроизведения, оно не работает.
То же самое относится и к фотографиям (камера снимает их, некоторые средства предварительного просмотра могут захотеть получить к ним доступ).
Вы можете исправить это вручную, но вам придется запускать после каждого нового созданного файла... Было бы неплохое реальное решение этой проблемы, но оно требует модификации системы: пусть приложения работают с umask(002) вместо 022. Android UPG (частные группы пользователей), так что в этом нет большого вреда. - Теперь приложения могут выбирать, хотят ли они предоставлять файлы другим, установив для группы значение «sdcard» или нет. Это также добавило бы принудительного разделения там, где этого хотят приложения.
sdcardfs
: android.stackexchange.com/a/217936/218526 . Но этот ответ не для нерутированного телефона.Похоже, что ответ "нет" :(. Я спрашивал, потому что у меня есть новая карта для телефона, поэтому я подумал, что просто попробую - это не сработало. Когда я прошу телефон установить свою карту, он сразу же говорит: «SD-карту можно безопасно удалить».
Ну что ж.
Краткий ответ: нет .
Хотя на Android 5 cat /proc/filesystems
показано, что ext4
поддерживается, кажется, что они поддерживаются только FAT32
на exFAT (FAT64)
устройствах без рута. Я безуспешно пытался установить карту micro SD на 64 ГБ в формате exFAT.
С помощью fdisk
вы можете отформатировать карту в FAT32 (файлы более 4 ГБ не поддерживаются):
$ fdisk -H 224 -S 56 /dev/mmcblk0
d
удалить предыдущий разделn
новый раздел, затем выберите основной p
и начало сектора по умолчанию, например, для2048
t
установить c
для FAT32x
и переместив начало раздела b
)w
написать измененияЗатем отформатируйте в FAT32, используя ваше количество зарезервированных секторов ( 2048
)
$ mkfs.vfat -F 32 -s 32 -R 2048 -v /dev/mmcblk0p1
-F 32
для FAT32-s 32
размер кластера, выраженный в виде секторов, поэтому 32 x 512 байт = 16 КБ кластеров-R 2048
количество зарезервированных секторовТаким образом, карту на 64 ГБ можно смонтировать с помощью FAT32, мне не удалось найти рабочего форматирования для exFAT или ext4.
Я пробовал LineageOS 14.1 (android 7.1.2), он поддерживает SD-карту (TF-карту), отформатированную в ext4. Хотя он форматирует sdcard в vfat по умолчанию, если вы не сделаете какой-либо патч. Самый простой способ — отформатировать SD-карту в ext4 с помощью внешнего usb-sdcard-адаптера, затем вставить SD-карту в телефон с установленной LineageOS.
Райан Конрад
Мэтью Рид