我知道在有根电话上,创建一个小的ext4分区供App2SD使用是正常的,但是我没有问这种情况:我有一个非根HTC Desire运行Froyo,我想格式化我的整个SD卡都是ext4而不是FAT。我知道这将意味着Windows PC无法使用该卡,但是我的所有PC都运行Linux,因此应该可以。在这种情况下,手机能否访问和使用卡?
我知道在有根电话上,创建一个小的ext4分区供App2SD使用是正常的,但是我没有问这种情况:我有一个非根HTC Desire运行Froyo,我想格式化我的整个SD卡都是ext4而不是FAT。我知道这将意味着Windows PC无法使用该卡,但是我的所有PC都运行Linux,因此应该可以。在这种情况下,手机能否访问和使用卡?
Answers:
如果您要升级到2.3或3.0 Android,则应该支持ext4(我发现您的帖子来自2.3和3.0版本之前的版本...)。
...并且将btrFS添加到Android时,它具有一个不错的挂载选项“,ssd”,具有耗损均衡等功能,而ext4则没有...并且现在的速度比ext4更快,尤其是如果使用“,compress在fstab中= lzo“或”,space_cache“(但不要在space_cache选项中使用压缩,只能使用1或另一个,否则在某些基准测试中它会减慢抓取速度)-尽管所有btrFS校验和都为bsum数据(不仅是ext4的期刊)。:-)
我实际上将我的sdcard放在ext4上,并在启动时将其永久安装(我的手机上已经安装了root)。
最大的问题是应用程序不希望对/ sdcard进行权限检查,但是extX会强制执行此操作(此操作附近没有安装选项)。因此,如果一个应用程序在其中存储了一些音频,例如调用了另一个子组件来播放它,那么它将失败。
照片也是如此(相机拍摄照片,某些预览器可能需要访问它们)。
您可以手动修复此问题,但必须在创建每个新文件后运行...会有一个不错的实际解决方案,但需要系统修改:让应用使用umask(002)而不是022运行。 UPG(用户专用组),因此这样做没有太大危害。–现在,应用程序可以通过将组设置为“ sdcard”来选择是否要向其他人公开文件。这还将在应用程序需要的地方增加强制隔离。
sdcardfs
:android.stackexchange.com/a/217936/218526获取固定权限。但是此答案不适用于非根电话。
似乎答案是“否” :(。我之所以问,是因为我要在手机中插入一张新卡,所以我想我只能尝试一下-它不起作用。装上它的卡,就直接说“可以安全取出SD卡”。
那好吧。
简短的回答:不。
尽管在Android 5上cat /proc/filesystems
显示了ext4
受支持,但似乎似乎只有FAT32
,exFAT (FAT64)
并且在非根设备上也受支持。我尝试将64GB micro SD卡安装为exFAT,但未成功。
使用fdisk
可以将卡格式化为FAT32(不支持超过4GB的文件):
$ fdisk -H 224 -S 56 /dev/mmcblk0
d
删除以前的分区n
新分区,然后选择主分区p
和默认扇区开始,例如2048
t
设置c
为FAT32x
并移动分区的开头来节省几个扇区b
)w
写变更然后使用您保留的扇区数(2048
)格式化为FAT32
$ mkfs.vfat -F 32 -s 32 -R 2048 -v /dev/mmcblk0p1
-F 32
对于FAT32-s 32
簇大小以扇区表示,因此32 x 512字节= 16KB簇-R 2048
保留扇区数这样,可以使用FAT32挂载64GB卡,我没想过要找到exFAT或ext4的任何有效格式。
我尝试了LineageOS 14.1(android 7.1.2),它支持ext4格式的sdcard(tf-card)。尽管默认情况下,它将sdcard格式化为vfat,但不进行任何修补。最简单的方法是使用外部usb-sdcard-adapter用ext4格式化sdcard,然后将sdcard插入安装了LineageOS的电话中。