Merge "Add kVisible flag to vold::Disk" am: 5e103f1106
Original change: https://android-review.googlesource.com/c/platform/system/vold/+/1536564
MUST ONLY BE SUBMITTED BY AUTOMERGER
Change-Id: Ibfc68bf8cce3b45188747974ac0304c9269d08bc
diff --git a/VolumeManager.cpp b/VolumeManager.cpp
index bbdcd3a..ce7a8b1 100644
--- a/VolumeManager.cpp
+++ b/VolumeManager.cpp
@@ -1092,9 +1092,14 @@
auto vol = std::shared_ptr<android::vold::StubVolume>(
new android::vold::StubVolume(stubId, sourcePath, mountPath, fsType, fsUuid, fsLabel));
- int32_t passedFlags = android::vold::Disk::Flags::kStub;
+ int32_t passedFlags = 0;
passedFlags |= (flags & android::vold::Disk::Flags::kUsb);
passedFlags |= (flags & android::vold::Disk::Flags::kSd);
+ if (flags & android::vold::Disk::Flags::kStubVisible) {
+ passedFlags |= (flags & android::vold::Disk::Flags::kStubVisible);
+ } else {
+ passedFlags |= (flags & android::vold::Disk::Flags::kStubInvisible);
+ }
// StubDisk doesn't have device node corresponds to it. So, a fake device
// number is used.
auto disk = std::shared_ptr<android::vold::Disk>(
diff --git a/model/Disk.h b/model/Disk.h
index 99c98fc..16476dc 100644
--- a/model/Disk.h
+++ b/model/Disk.h
@@ -53,9 +53,12 @@
kUsb = 1 << 3,
/* Flag that disk is EMMC internal */
kEmmc = 1 << 4,
- /* Flag that disk is Stub disk, i.e., disk that is managed from outside
- * Android (e.g., ARC++). */
- kStub = 1 << 5,
+ /* Flag that disk is an invisible Stub disk, i.e., disk that is managed from outside
+ * Android (e.g., ARC++) and invisible to apps. */
+ kStubInvisible = 1 << 5,
+ /* Flag that disk is a visible Stub disk, i.e., disk that is managed from outside
+ * Android (e.g., ARC++) and visible to apps. */
+ kStubVisible = 1 << 6,
};
const std::string& getId() const { return mId; }
@@ -120,7 +123,7 @@
int getMaxMinors();
- bool isStub() { return mFlags & kStub; }
+ bool isStub() { return (mFlags & kStubInvisible) || (mFlags & kStubVisible); }
DISALLOW_COPY_AND_ASSIGN(Disk);
};