Initial unified commit for Android 14, with "light" GSI target
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
From 1c1e3e209c687d9ef0e86c80a113208251a375b9 Mon Sep 17 00:00:00 2001
|
||||
From: Pierre-Hugues Husson <phh@phh.me>
|
||||
Date: Tue, 18 Oct 2022 16:08:09 -0400
|
||||
Subject: [PATCH] Exfat can be mounted with "exfat" kernel fs driver, or
|
||||
"sdfat" or "texfat" (Samsung and Sony variants)
|
||||
|
||||
@AndyCGYan: Adapt to LineageOS vold
|
||||
|
||||
Change-Id: I331e66d8cb37664adbd493b9190123e29f01fd9d
|
||||
---
|
||||
Utils.cpp | 5 +++++
|
||||
fs/Exfat.cpp | 11 +++++++++--
|
||||
2 files changed, 14 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/Utils.cpp b/Utils.cpp
|
||||
index a7e85f2..fb67067 100644
|
||||
--- a/Utils.cpp
|
||||
+++ b/Utils.cpp
|
||||
@@ -1059,6 +1059,11 @@ bool IsFilesystemSupported(const std::string& fsType) {
|
||||
/* fuse filesystems */
|
||||
supported.append("fuse\tntfs\n");
|
||||
|
||||
+ /* treat sdfat/texfat as exfat */
|
||||
+ if (supported.find("sdfat\n") != std::string::npos || supported.find("texfat\n") != std::string::npos) {
|
||||
+ supported.append("\texfat\n");
|
||||
+ }
|
||||
+
|
||||
return supported.find(fsType + "\n") != std::string::npos;
|
||||
}
|
||||
|
||||
diff --git a/fs/Exfat.cpp b/fs/Exfat.cpp
|
||||
index c8b19e0..46a0e2d 100644
|
||||
--- a/fs/Exfat.cpp
|
||||
+++ b/fs/Exfat.cpp
|
||||
@@ -61,13 +61,20 @@ status_t Mount(const std::string& source, const std::string& target, int ownerUi
|
||||
auto mountData = android::base::StringPrintf("uid=%d,gid=%d,fmask=%o,dmask=%o", ownerUid,
|
||||
ownerGid, permMask, permMask);
|
||||
|
||||
- if (mount(source.c_str(), target.c_str(), "exfat", mountFlags, mountData.c_str()) == 0) {
|
||||
+ const char *fs = "exfat";
|
||||
+ if (IsFilesystemSupported("sdfat")) {
|
||||
+ fs = "sdfat";
|
||||
+ } else if (IsFilesystemSupported("texfat")) {
|
||||
+ fs = "texfat";
|
||||
+ }
|
||||
+
|
||||
+ if (mount(source.c_str(), target.c_str(), fs, mountFlags, mountData.c_str()) == 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
PLOG(ERROR) << "Mount failed; attempting read-only";
|
||||
mountFlags |= MS_RDONLY;
|
||||
- if (mount(source.c_str(), target.c_str(), "exfat", mountFlags, mountData.c_str()) == 0) {
|
||||
+ if (mount(source.c_str(), target.c_str(), fs, mountFlags, mountData.c_str()) == 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
--
|
||||
2.25.1
|
||||
|
||||
Reference in New Issue
Block a user