Based on [exfat 1.1.1 r422 sources](https://code.google.com/p/exfat/source/list). Initial Android project and modifications were taken from [OUYA repository](https://github.com/ouya/android_external_exfat).
The changes made are:
* Several patches to keep the file system consistent as much as possible. The original version keeps cluster map in memory, and flushes it to the disk only at unmount event. Also, it updates the file system information about changed files only on file close. This is unreliable for mobile use, especially when SD card is heavily used by applications. Moreover, modern Android does not unmout SD card (mounted not by `vold`) before reboot or power off. You can read a discussion with Andrew Nayenko (the exFAT author) [here](https://groups.google.com/forum/#!topic/exfat/u5Ldpmy3vkA).
* Original source code uses 64-bit off_t type version, but Android NDK toolchain and libraries ignore `_FILE_OFFSET_BITS=64` define. Changed to `off64_t`, and also switched to `lseek64`, `pread64`, `pwrite64`.
**Note:** It is not good to typedef `off_t` as 64-bit integer before including other headers, because it has side effect, in particular, it breaks stream I/O functions in Bionic libc.
* Replaced `abort()` with exit`()` on emergency quit, because under Android `abort()` produces crash dump.
* Starting from 1.0.4, Android build is default to "`noatime`" option, and ignores other values ("`atime`", "`relatime`") provided from the command line.
This project produces only one binary file: `mount.exfat`. To have the full set of exFAT utilities, and/or for applications that expect other executable names, you have to run all or some of the following commands:
ln -s mount.exfat mount.exfat-fuse
ln -s mount.exfat dumpexfat
ln -s mount.exfat exfatfsck
ln -s mount.exfat exfatlabel
ln -s mount.exfat mkexfatfs
ln -s mount.exfat fsck.exfat
ln -s mount.exfat mkfs.exfat
My auto-mount script creates all the links, if required.
**Note regarding the file system consistency**
All the changes to the functionality, compared to the original code, is active only if the volume was mounted with `sync` option. This `sync` option _does not_ sync every write with the underlying device, it only flushes file system changes earlier and more often, that the original version (or if mounted without `sync` option).
Starting from [1.0.3](https://github.com/Lurker00/Android-fs/releases), this is the default behaviour for my Android builds: no `sync` option is required, and this safer behaviour can't be disabled under Android.
Starting from [1.0.4](https://github.com/Lurker00/Android-fs/releases), it marks the volume as opened only before making any changes to the file system, and unmarks it as soon as the files being written are closed, and changes are flushed to the device. Short operations (create/rename/delete files and directories) are finished with `fsync` to the device. Files under 32 MB are flushed and `fsync`ed on number of occupied clusters growth. For files bigger than 32 MB `fsync` is not used until closing, for the sake of performance.
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
Android7.0支持exfat (101个子文件)
mkexfatfs.8 2KB
mount.exfat-fuse.8 2KB
exfatlabel.8 829B
dumpexfat.8 745B
exfatfsck.8 563B
Makefile.am 344B
fuse.c 110KB
fuse_lowlevel.c 71KB
probe.c 49KB
probe.c 46KB
uctc.c 36KB
node.c 32KB
main.c 15KB
mount.c 14KB
cluster.c 12KB
mount.c 11KB
helper.c 11KB
io.c 10KB
ulockmgr.c 9KB
fuse_opt.c 9KB
cuse_lowlevel.c 9KB
mount_bsd.c 8KB
mount_util.c 7KB
fusexmp.c 6KB
buffer.c 6KB
fuse_loop_mt.c 6KB
utf.c 5KB
main.c 5KB
utils.c 5KB
time.c 5KB
lookup.c 5KB
main.c 5KB
main.c 5KB
fuse_session.c 5KB
vbr.c 4KB
mkexfat.c 4KB
rootdir.c 3KB
fuse_mt.c 3KB
log.c 2KB
fat.c 2KB
fuse_kern_chan.c 2KB
cbm.c 2KB
fuse_signals.c 2KB
main.c 2KB
main.c 2KB
uct.c 1KB
fuse_loop.c 943B
ChangeLog 5KB
COPYING 18KB
PublicVolume.cpp 14KB
PublicVolume.cpp 14KB
Exfat.cpp 5KB
Exfat.cpp 5KB
fuse_lowlevel.h 51KB
fuse.h 34KB
probe.h 23KB
probe.h 22KB
fuse_kernel.h 13KB
fuse_common.h 12KB
exfat.h 8KB
fuse_compat.h 8KB
fuse_opt.h 7KB
fuse_lowlevel_compat.h 7KB
exfatfs.h 6KB
fuse_i.h 3KB
cuse_lowlevel.h 3KB
config.h 2KB
byteorder.h 2KB
platform.h 2KB
compiler.h 2KB
fuse_misc.h 2KB
mkexfat.h 1KB
version.h 996B
rootdir.h 993B
fat.h 980B
vbr.h 977B
uctc.h 976B
uct.h 975B
cbm.h 974B
mount_util.h 725B
fuse_common_compat.h 714B
ulockmgr.h 679B
statvfs.h 651B
fuse.h 246B
Makefile.in 15KB
config.h.in 2KB
Makefile 15KB
README.md 3KB
device.mk 84KB
device.mk 84KB
Android.mk 1KB
Android.mk 1KB
Android.mk 265B
Android.mk 261B
Android.mk 212B
Android.mk 211B
Android.mk 210B
Android.mk 210B
README 843B
SConstruct 4KB
共 101 条
- 1
- 2
资源评论
- conceptcon2019-06-13没有什么用!!!!!!!!白花了7积分
新月舞阳
- 粉丝: 1
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功