summaryrefslogtreecommitdiff
path: root/services/incremental/IncrementalService.cpp
diff options
context:
space:
mode:
authorAlex Buynytskyy <alexbuy@google.com>2021-01-12 11:10:03 -0800
committerAlex Buynytskyy <alexbuy@google.com>2021-01-12 12:35:53 -0800
commit42d4ba418e97c6e34fba7b1053d69e92ec32b846 (patch)
tree51329c4aa638a50db0adaa57690c49310041b931 /services/incremental/IncrementalService.cpp
parentdaea39f8a21c1900f45e652df2fa10ffe3e3d5bf (diff)
Require INTERACT_ACROSS_USERS to enable readlogs.
As requested by PWG. Bug: 177330562 Fixes: 177330562 Test: atest PackageManagerShellCommandTest PackageManagerShellCommandIncrementalTest IncrementalServiceTest PackageManagerServiceTest Change-Id: I1b03bc1c5b4c3cffaa0f97d864cc088782290bc2
Diffstat (limited to 'services/incremental/IncrementalService.cpp')
-rw-r--r--services/incremental/IncrementalService.cpp19
1 files changed, 16 insertions, 3 deletions
diff --git a/services/incremental/IncrementalService.cpp b/services/incremental/IncrementalService.cpp
index 45c9ad9b344b..dde70caa797f 100644
--- a/services/incremental/IncrementalService.cpp
+++ b/services/incremental/IncrementalService.cpp
@@ -38,9 +38,11 @@
using namespace std::literals;
-constexpr const char* kDataUsageStats = "android.permission.LOADER_USAGE_STATS";
+constexpr const char* kLoaderUsageStats = "android.permission.LOADER_USAGE_STATS";
constexpr const char* kOpUsage = "android:loader_usage_stats";
+constexpr const char* kInteractAcrossUsers = "android.permission.INTERACT_ACROSS_USERS";
+
namespace android::incremental {
using content::pm::DataLoaderParamsParcel;
@@ -684,10 +686,21 @@ int IncrementalService::setStorageParams(StorageId storageId, bool enableReadLog
return -EPERM;
}
- if (auto status = mAppOpsManager->checkPermission(kDataUsageStats, kOpUsage,
+ // Check loader usage stats permission and apop.
+ if (auto status = mAppOpsManager->checkPermission(kLoaderUsageStats, kOpUsage,
+ params.packageName.c_str());
+ !status.isOk()) {
+ LOG(ERROR) << " Permission: " << kLoaderUsageStats
+ << " check failed: " << status.toString8();
+ return fromBinderStatus(status);
+ }
+
+ // Check multiuser permission.
+ if (auto status = mAppOpsManager->checkPermission(kInteractAcrossUsers, nullptr,
params.packageName.c_str());
!status.isOk()) {
- LOG(ERROR) << "checkPermission failed: " << status.toString8();
+ LOG(ERROR) << " Permission: " << kInteractAcrossUsers
+ << " check failed: " << status.toString8();
return fromBinderStatus(status);
}
}