diff options
author | 2021-03-31 22:19:42 -0700 | |
---|---|---|
committer | 2021-04-08 09:57:54 +0000 | |
commit | c144cc453a6206b259041e8976544b43a7bd6c02 (patch) | |
tree | 60aaf47ede4a021dc0c2c144103f4c781e887bca /services/incremental/IncrementalService.h | |
parent | bcc5b4c1ff0c5ac8299df40c2fa146c3345e2c61 (diff) |
Installation hardening: reducing read timeout during installation.
And then restoring post-install.
Bug: 160635296
Test: atest PackageManagerShellCommandTest PackageManagerShellCommandIncrementalTest IncrementalServiceTest PackageManagerServiceTest ChecksumsTest
Change-Id: I0821458bf92db162518a2cbcb7499cd7544e64f2
Diffstat (limited to 'services/incremental/IncrementalService.h')
-rw-r--r-- | services/incremental/IncrementalService.h | 31 |
1 files changed, 27 insertions, 4 deletions
diff --git a/services/incremental/IncrementalService.h b/services/incremental/IncrementalService.h index fb6f56c9166e..e3b1e6fb6e48 100644 --- a/services/incremental/IncrementalService.h +++ b/services/incremental/IncrementalService.h @@ -118,6 +118,9 @@ public: ReadLogsAllowed = 1 << 0, ReadLogsEnabled = 1 << 1, ReadLogsRequested = 1 << 2, + + ReadTimeoutsEnabled = 1 << 3, + ReadTimeoutsRequested = 1 << 4, }; struct LoadingProgress { @@ -160,6 +163,7 @@ public: const StorageHealthCheckParams& healthCheckParams, StorageHealthListener healthListener, std::vector<PerUidReadTimeouts> perUidReadTimeouts); + void onInstallationComplete(StorageId storage); int bind(StorageId storage, std::string_view source, std::string_view target, BindKind kind); int unbind(StorageId storage, std::string_view target); @@ -316,7 +320,7 @@ private: } mHealthBase = {TimePoint::max(), kMaxBootClockTsUs}; StorageHealthCheckParams mHealthCheckParams; int mStreamStatus = content::pm::IDataLoaderStatusListener::STREAM_HEALTHY; - std::vector<incfs::ReadInfo> mLastPendingReads; + std::vector<incfs::ReadInfoWithUid> mLastPendingReads; }; using DataLoaderStubPtr = sp<DataLoaderStub>; @@ -364,13 +368,32 @@ private: void disallowReadLogs() { flags &= ~StorageFlags::ReadLogsAllowed; } int32_t readLogsAllowed() const { return (flags & StorageFlags::ReadLogsAllowed); } - void setReadLogsEnabled(bool value); + void setReadLogsEnabled(bool value) { + return setFlag(StorageFlags::ReadLogsEnabled, value); + } int32_t readLogsEnabled() const { return (flags & StorageFlags::ReadLogsEnabled); } - void setReadLogsRequested(bool value); + void setReadLogsRequested(bool value) { + return setFlag(StorageFlags::ReadLogsRequested, value); + } int32_t readLogsRequested() const { return (flags & StorageFlags::ReadLogsRequested); } + void setReadTimeoutsEnabled(bool value) { + return setFlag(StorageFlags::ReadTimeoutsEnabled, value); + } + int32_t readTimeoutsEnabled() const { return (flags & StorageFlags::ReadTimeoutsEnabled); } + + void setReadTimeoutsRequested(bool value) { + return setFlag(StorageFlags::ReadTimeoutsRequested, value); + } + int32_t readTimeoutsRequested() const { + return (flags & StorageFlags::ReadTimeoutsRequested); + } + static void cleanupFilesystem(std::string_view root); + + private: + void setFlag(StorageFlags flag, bool value); }; using IfsMountPtr = std::shared_ptr<IncFsMount>; @@ -422,7 +445,7 @@ private: int makeDirs(const IncFsMount& ifs, StorageId storageId, std::string_view path, int mode); int disableReadLogsLocked(IncFsMount& ifs); - int applyStorageParamsLocked(IncFsMount& ifs, bool enableReadLogs); + int applyStorageParamsLocked(IncFsMount& ifs); LoadingProgress getLoadingProgressFromPath(const IncFsMount& ifs, std::string_view path) const; |