Per-uid timeouts.
- don't allow read restrictions for system uids, - calling into incfs per-uid function. Bug: 162345970 Test: atest PackageManagerShellCommandTest PackageManagerShellCommandIncrementalTest IncrementalServiceTest PackageManagerServiceTest Change-Id: If52ab97e67f867f5905f8919e886262dab7aa859 Merged-In: If52ab97e67f867f5905f8919e886262dab7aa859
This commit is contained in:
@@ -28304,6 +28304,13 @@ public class PackageManagerService extends IPackageManager.Stub
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if (ps.appId < Process.FIRST_APPLICATION_UID) {
|
||||
if (DEBUG_PER_UID_READ_TIMEOUTS) {
|
||||
Slog.i(TAG, "PerUidReadTimeouts: package is system, appId=" + ps.appId);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
final AndroidPackage pkg = ps.getPkg();
|
||||
if (pkg.getLongVersionCode() < perPackage.versionCodes.minVersionCode
|
||||
|| pkg.getLongVersionCode() > perPackage.versionCodes.maxVersionCode) {
|
||||
|
||||
@@ -210,7 +210,17 @@ public:
|
||||
ErrorCode setUidReadTimeouts(const Control& control,
|
||||
const std::vector<android::os::incremental::PerUidReadTimeouts>&
|
||||
perUidReadTimeouts) const final {
|
||||
return -ENOTSUP;
|
||||
std::vector<incfs::UidReadTimeouts> timeouts;
|
||||
timeouts.resize(perUidReadTimeouts.size());
|
||||
for (int i = 0, size = perUidReadTimeouts.size(); i < size; ++i) {
|
||||
auto&& timeout = timeouts[i];
|
||||
const auto& perUidTimeout = perUidReadTimeouts[i];
|
||||
timeout.uid = perUidTimeout.uid;
|
||||
timeout.minTimeUs = perUidTimeout.minTimeUs;
|
||||
timeout.minPendingTimeUs = perUidTimeout.minPendingTimeUs;
|
||||
timeout.maxPendingTimeUs = perUidTimeout.maxPendingTimeUs;
|
||||
}
|
||||
return incfs::setUidReadTimeouts(control, timeouts);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user