summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCharles Lin <charleslin@realtek.com>2020-12-28 09:11:27 +0000
committerCharles Lin <charleslin@realtek.com>2020-12-28 10:00:17 +0000
commit6aa40c395f42ea1448db6c4ffe94065035707878 (patch)
tree3195e973a4869b8c9a6ecf6a107416d005d987d8
parent5d412489475694286e3b3c43e74f42ef21ebc4de (diff)
mkdir .incomplete in backing storage to fix CTS/GTS failures
Linux kernel included a commit 17efe505a4c3df88d3e13051f421d27d7178d47f that creates .incomplete folder on mounting incfs. However .incomplete folder is only accessible for root with 0700 permission. So system_server has no permission to access it. By creating .incomplete folder with 0777 permission in system_server, incfs won't have to create incomplete folder implicitly. Bug: 176400491 Test: CtsIncrementalInstallHostTestCases CtsContentTestCases android.content.pm.cts.PackageManagerShellCommandIncrementalTest CtsStatsdHostTestCases android.cts.statsd.atom.UidAtomTests#testPackageInstallerV2MetricsReported GtsIncrementalInstallProxyHostTestCases Change-Id: Icb7babe3b482a089019f981fe149de7d619ce87e
-rw-r--r--services/incremental/IncrementalService.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/services/incremental/IncrementalService.cpp b/services/incremental/IncrementalService.cpp
index f3940e609b8b..d07e70ca9023 100644
--- a/services/incremental/IncrementalService.cpp
+++ b/services/incremental/IncrementalService.cpp
@@ -476,6 +476,9 @@ StorageId IncrementalService::createStorage(std::string_view mountPoint,
if (!mkdirOrLog(path::join(backing, ".index"), 0777)) {
return kInvalidStorageId;
}
+ if (!mkdirOrLog(path::join(backing, ".incomplete"), 0777)) {
+ return kInvalidStorageId;
+ }
auto status = mVold->mountIncFs(backing, mountTarget, 0, &controlParcel);
if (!status.isOk()) {
LOG(ERROR) << "Vold::mountIncFs() failed: " << status.toString8();