summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRubin Xu <rubinxu@google.com>2025-05-21 15:34:51 +0100
committeraoleary <seanm187@gmail.com>2025-10-07 19:02:12 +0000
commit85f56e4d63b118111f2950362752412a4239acc9 (patch)
tree90f3c16398b7a4aa147938096e75166b86251401
parent2a9c4738b1af74340b1fbbc2cea5839f6ef9a067 (diff)
Use correct API to get calling package name in CredentialStorage
Activity.getCallingPackage() does not always return the package name of the actual calling app. getLaunchedFromPackage() should be used instead. Bug: 389681530 Test: manual Flag: EXEMPT bugfix (cherry picked from commit 70bd3efe0674bccb0d454845d86fb2402779a7bf) (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:131e19e3fdf184332015e2592cff3467a360ff99) Merged-In: Ibdbc45e53f4aa46fae79fa234705b3735bfda4cd Change-Id: Ibdbc45e53f4aa46fae79fa234705b3735bfda4cd
-rw-r--r--src/com/android/settings/security/CredentialStorage.java15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/com/android/settings/security/CredentialStorage.java b/src/com/android/settings/security/CredentialStorage.java
index ea336314566..57a59cd287f 100644
--- a/src/com/android/settings/security/CredentialStorage.java
+++ b/src/com/android/settings/security/CredentialStorage.java
@@ -17,6 +17,7 @@
package com.android.settings.security;
import android.app.Activity;
+import android.app.ActivityManager;
import android.app.admin.DevicePolicyManager;
import android.content.Context;
import android.content.DialogInterface;
@@ -331,15 +332,25 @@ public final class CredentialStorage extends FragmentActivity {
}
}
+ private String getCallingPackageName() {
+ try {
+ return ActivityManager.getService().getLaunchedFromPackage(getActivityToken());
+ } catch (RemoteException re) {
+ // Error talking to ActivityManager, just give up
+ return null;
+ }
+ }
+
/**
* Check that the caller is either certinstaller or Settings running in a profile of this user.
*/
private boolean checkCallerIsCertInstallerOrSelfInProfile() {
- if (TextUtils.equals("com.android.certinstaller", getCallingPackage())) {
+ String callingPackage = getCallingPackageName();
+ if (TextUtils.equals("com.android.certinstaller", callingPackage)) {
// CertInstaller is allowed to install credentials if it has the same signature as
// Settings package.
return getPackageManager().checkSignatures(
- getCallingPackage(), getPackageName()) == PackageManager.SIGNATURE_MATCH;
+ callingPackage, getPackageName()) == PackageManager.SIGNATURE_MATCH;
}
final int launchedFromUserId;