Android-x86
Fork
Spenden

  • R/O
  • HTTP
  • SSH
  • HTTPS

system-vold: Commit

system/vold


Commit MetaInfo

Revision270192528a107136329f36de30fa345226b4c880 (tree)
Zeit2020-05-05 01:49:35
AutorChih-Wei Huang <cwhuang@linu...>
CommiterChih-Wei Huang

Log Message

Support mounting exfat via fuse

Ändern Zusammenfassung

Diff

--- a/Utils.cpp
+++ b/Utils.cpp
@@ -563,7 +563,8 @@ bool IsFilesystemSupported(const std::string& fsType) {
563563 }
564564
565565 /* fuse filesystems */
566- supported.append("fuse\tntfs\n");
566+ supported.append("fuse\tntfs\n"
567+ "fuse\texfat\n");
567568
568569 if (supported.find(fsType + "\n") != std::string::npos) {
569570 return true;
--- a/fs/Exfat.cpp
+++ b/fs/Exfat.cpp
@@ -32,6 +32,7 @@ namespace exfat {
3232
3333 static const char* kMkfsPath = "/system/bin/mkfs.exfat";
3434 static const char* kFsckPath = "/system/bin/fsck.exfat";
35+static const char* kMountPath = "/system/bin/mount.exfat";
3536
3637 bool IsSupported() {
3738 return access(kMkfsPath, X_OK) == 0 && access(kFsckPath, X_OK) == 0 &&
@@ -70,7 +71,18 @@ status_t Mount(const std::string& source, const std::string& target, int ownerUi
7071 return 0;
7172 }
7273
73- return -1;
74+ mountData = android::base::StringPrintf(
75+ "noatime,nodev,nosuid,dirsync,uid=%d,gid=%d,fmask=%o,dmask=%o,noexec,rw",
76+ ownerUid, ownerGid, permMask, permMask);
77+
78+ std::vector<std::string> cmd;
79+ cmd.push_back(kMountPath);
80+ cmd.push_back("-o");
81+ cmd.push_back(mountData);
82+ cmd.push_back(source);
83+ cmd.push_back(target);
84+
85+ return ForkExecvp(cmd);
7486 }
7587
7688 status_t Format(const std::string& source) {
Show on old repository browser