diff options
author | Ketut Putu Kumajaya <ketut.kumajaya@gmail.com> | 2015-12-02 16:17:23 +0700 |
---|---|---|
committer | Michael Bestas <mkbestas@lineageos.org> | 2017-12-20 22:14:52 +0200 |
commit | c5df265dce568e476ccb93a54239111ad8c4417e (patch) | |
tree | 619c39acab5fb1594922937cf11d4edbf4b824dc | |
parent | 18335a5b00d5144655a7b334c03993495e48abcd (diff) | |
download | android_system_vold-c5df265dce568e476ccb93a54239111ad8c4417e.tar.gz android_system_vold-c5df265dce568e476ccb93a54239111ad8c4417e.tar.bz2 android_system_vold-c5df265dce568e476ccb93a54239111ad8c4417e.zip |
vold: Native exfat driver support
* exfat-nofuse https://github.com/dorimanx/exfat-nofuse
Change-Id: I0b7d7b3f3e21defa83e08564b3fdb67a9957edc0
vold: Fix native exfat driver support
Change-Id: I772368c0ec054a2ba86cf0ba0e37f07ba2b82fd2
-rw-r--r-- | Android.mk | 4 | ||||
-rw-r--r-- | fs/Exfat.cpp | 12 |
2 files changed, 16 insertions, 0 deletions
@@ -114,6 +114,10 @@ ifeq ($(TARGET_HW_DISK_ENCRYPTION),true) vold_cflags += -DCONFIG_HW_DISK_ENCRYPTION endif +ifeq ($(TARGET_KERNEL_HAVE_EXFAT),true) + vold_cflags += -DCONFIG_KERNEL_HAVE_EXFAT +endif + include $(CLEAR_VARS) LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk diff --git a/fs/Exfat.cpp b/fs/Exfat.cpp index 1f435ad..d0b1143 100644 --- a/fs/Exfat.cpp +++ b/fs/Exfat.cpp @@ -33,7 +33,11 @@ namespace exfat { static const char* kMkfsPath = "/system/bin/mkfs.exfat"; static const char* kFsckPath = "/system/bin/fsck.exfat"; +#ifdef CONFIG_KERNEL_HAVE_EXFAT +static const char* kMountPath = "/system/bin/mount"; +#else static const char* kMountPath = "/system/bin/mount.exfat"; +#endif bool IsSupported() { return access(kMkfsPath, X_OK) == 0 @@ -59,13 +63,21 @@ status_t Mount(const std::string& source, const std::string& target, bool ro, const char* c_target = target.c_str(); sprintf(mountData, +#ifdef CONFIG_KERNEL_HAVE_EXFAT + "noatime,nodev,nosuid,uid=%d,gid=%d,fmask=%o,dmask=%o,%s,%s", +#else "noatime,nodev,nosuid,dirsync,uid=%d,gid=%d,fmask=%o,dmask=%o,%s,%s", +#endif ownerUid, ownerGid, permMask, permMask, (executable ? "exec" : "noexec"), (ro ? "ro" : "rw")); std::vector<std::string> cmd; cmd.push_back(kMountPath); +#ifdef CONFIG_KERNEL_HAVE_EXFAT + cmd.push_back("-t"); + cmd.push_back("exfat"); +#endif cmd.push_back("-o"); cmd.push_back(mountData); cmd.push_back(c_source); |