I know that on a rooted phone, it's reasonably normal to create a small ext4 partition for App2SD to use, but I'm not asking about that case: I have a non-rooted HTC Desire running Froyo, and I'd like to format the whole of my SD card as ext4 instead of FAT. I'm aware that this will mean that Windows PCs won't be able to use the card, but all my PCs run Linux so they should be fine. Will the phone be able to access and use the card in this case?
-
I don't think you can. especially since froyo uses FAT for its apps2sd implementation. – Ryan Conrad Jan 07 '11 at 21:22
-
I think you'd have to change the mounting options for the SD card, which would require root. – Matthew Read Jan 07 '11 at 21:32
5 Answers
I actually had my sdcard on ext4 and got it mounted permanent at boot time (I have root on my phone).
The biggest problem was that the apps don’t expect permission checking on /sdcard, but extX enforces this (no mount option around this). So if one app stores e.g. some audio there and calls another subcomponent to play it, it fails.
The same is true for photos (camera shots them, some previewer might want to access them).
You can manually fix this, but you have to run after every new file created... There would be an nice real solution to this, but it requires system modification: let the apps run with umask(002) instead of 022. Android is UPG (User Private Groups), so there is no big harm in doing so. – Now the apps could choose if they want to expose files to others by setting the group to “sdcard“, or not. This would also add to an enforced separation where the apps want it.

- 1,188
- 1
- 14
- 23
-
1Get fixed permissions using FUSE or
sdcardfs
: https://android.stackexchange.com/a/217936/218526. But this answer isn't for non-rooted phone. – Irfan Latif Jan 04 '20 at 00:40
ext4 should be supported if you have an upgrade to 2.3 or 3.0 Android (I see that your post is from just before the 2.3 & 3.0 releases...).
...and when btrFS is added to Android, it has a nice mount-option ",ssd" with wear-levelling etc that ext4 doesn't have... and more speed than ext4 now, esp if you use ",compress=lzo" OR ",space_cache" in fstab (but don't use compression WITH the space_cache option, only use 1 or the other or else it slows to a crawl in some benchmarks) -- and that speed comes despite btrFS checksumming of all data (not only of the journals, as ext4 does). :-)

- 72
- 1
- 2
-
4Just an update from 2017: I think this is really only valid if you have a rooted device, unfortunately. – Jesse Adelman Jul 24 '17 at 18:33
-
Just an update from 2021, still not working on Android 10. I also tried an XFS formatted thumbdrive, still nothing. – 15 Volts Mar 16 '21 at 06:58
It appears that the answer is "no" :(. I was asking because I have a new card to go in the phone, so I thought I'd just try it -- it didn't work. When I ask the phone to mount its card, it goes straight to saying "SD card safe to remove."
Oh well.

- 381
- 1
- 2
- 9
-
-
http://forum.xda-developers.com/showthread.php?t=2424900 explains that vold is something of an obstacle – JasonPlutext Dec 22 '16 at 10:46
-
Short answer: no.
Although on Android 5 cat /proc/filesystems
shows that ext4
is supported it seems that only FAT32
and exFAT (FAT64)
are supported on non-rooted devices. I've tried mounting 64GB micro SD card as exFAT without any success.
Using fdisk
you can format your card to FAT32 (files over 4GB are not supported):
$ fdisk -H 224 -S 56 /dev/mmcblk0
d
delete previous partitionn
new partition, then select primary onep
and default sector start e.g to2048
t
setc
for FAT32- (here you can save few sectors by going to expert mode
x
and moving begin of partitionb
) w
write changes
Then format to FAT32, using your number of reserved sectors (2048
)
$ mkfs.vfat -F 32 -s 32 -R 2048 -v /dev/mmcblk0p1
-F 32
for FAT32-s 32
cluster size expressed as sectors, so 32 x 512 bytes = 16KB clusters-R 2048
number of reserved sectors
This way 64GB card can be mounted using FAT32, I didn't mange to find any working formatting for exFAT or ext4.

- 129
- 2
-
-
@Masi could you be more specific? I've tried formatting SD card to ext2, ext3, ext4, fat32 and exfat. Tested on Android 5.0 and only fat32 was working. Android has very limited options of logging on non-rooted devices. What would you want me to do? – Tombart Sep 02 '16 at 08:09
-
I just did a complete system installation of a new Rom on ext4. The phone used the recovery mode (TWRP 2.8.x). No OS at all in phone. Your recovery image must support ext4. Please, let us know yours and try to update it. I recommend TWRP 3.0.2. – Léo Léopold Hertz 준영 Sep 02 '16 at 08:33
-
2@Masi The question is about default non-rooted Android. I guess you're using rooted OS. – Tombart Sep 05 '16 at 07:37
-
-
@Masi Ok, I'm not sure what you're trying to prove. You've managed to install OS on ext4, but the question is about mounting an SD card. So, what's your point? – Tombart Sep 05 '16 at 07:48
-
-
2@Masi well, could then you support that claim with something more specific? – Tombart Sep 05 '16 at 11:35
I tried LineageOS 14.1(android 7.1.2), it support sdcard(tf-card) formatted in ext4. Though it format sdcard to vfat defaultly, if you don't make any patch. The easiest way is to format the sdcard with ext4 using a external usb-sdcard-adapter, then insert the sdcard into phone with LineageOS installed.

- 111
- 2
-
-
@IrfanLatif Why android insist on using FAT on external cards? FAT is so fragile that all major phone makers are getting rid of the sd card slot simply to not have to bother with it. – user3528438 Nov 10 '23 at 15:41