summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2021-03-12 01:17:46 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2021-03-12 01:17:46 +0000
commit62acb3887fc6759943b5abafdbfbe5ae525a8257 (patch)
treebb1cf34c7bc710ca0b7d6834aefa8ec21eef2594
parent024f239d4a8b721b8fdef3919c9db2db490e65ed (diff)
parent1db5dd180b9b3adb1903044ddaebf17f2f189b20 (diff)
Merge "Prevent fail to get device config while dumping package service" into sc-dev
-rw-r--r--services/core/java/com/android/server/pm/PackageManagerService.java18
-rw-r--r--services/core/java/com/android/server/power/PreRebootLogger.java4
2 files changed, 14 insertions, 8 deletions
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index ff87f1c4b4ca..f828a119f988 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -27803,13 +27803,23 @@ public class PackageManagerService extends IPackageManager.Stub
}
private static String getDefaultTimeouts() {
- return DeviceConfig.getString(DeviceConfig.NAMESPACE_PACKAGE_MANAGER_SERVICE,
- PROPERTY_INCFS_DEFAULT_TIMEOUTS, "");
+ final long token = Binder.clearCallingIdentity();
+ try {
+ return DeviceConfig.getString(NAMESPACE_PACKAGE_MANAGER_SERVICE,
+ PROPERTY_INCFS_DEFAULT_TIMEOUTS, "");
+ } finally {
+ Binder.restoreCallingIdentity(token);
+ }
}
private static String getKnownDigestersList() {
- return DeviceConfig.getString(DeviceConfig.NAMESPACE_PACKAGE_MANAGER_SERVICE,
- PROPERTY_KNOWN_DIGESTERS_LIST, "");
+ final long token = Binder.clearCallingIdentity();
+ try {
+ return DeviceConfig.getString(NAMESPACE_PACKAGE_MANAGER_SERVICE,
+ PROPERTY_KNOWN_DIGESTERS_LIST, "");
+ } finally {
+ Binder.restoreCallingIdentity(token);
+ }
}
/**
diff --git a/services/core/java/com/android/server/power/PreRebootLogger.java b/services/core/java/com/android/server/power/PreRebootLogger.java
index 2e4b054b829c..c9e81ed7a796 100644
--- a/services/core/java/com/android/server/power/PreRebootLogger.java
+++ b/services/core/java/com/android/server/power/PreRebootLogger.java
@@ -19,7 +19,6 @@ package com.android.server.power;
import android.annotation.DurationMillisLong;
import android.annotation.NonNull;
import android.content.Context;
-import android.os.Binder;
import android.os.Environment;
import android.os.IBinder;
import android.os.ParcelFileDescriptor;
@@ -147,7 +146,6 @@ final class PreRebootLogger {
return;
}
- final long token = Binder.clearCallingIdentity();
try {
final File dumpFile = new File(dumpDir, serviceName);
final ParcelFileDescriptor fd = ParcelFileDescriptor.open(dumpFile,
@@ -156,8 +154,6 @@ final class PreRebootLogger {
binder.dump(fd.getFileDescriptor(), ArrayUtils.emptyArray(String.class));
} catch (FileNotFoundException | RemoteException e) {
Slog.e(TAG, String.format("Failed to dump %s service before reboot", serviceName), e);
- } finally {
- Binder.restoreCallingIdentity(token);
}
}
}