summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--telephony/common/com/android/internal/telephony/TelephonyPermissions.java19
1 files changed, 19 insertions, 0 deletions
diff --git a/telephony/common/com/android/internal/telephony/TelephonyPermissions.java b/telephony/common/com/android/internal/telephony/TelephonyPermissions.java
index 0c463949b14a..225e3f760d20 100644
--- a/telephony/common/com/android/internal/telephony/TelephonyPermissions.java
+++ b/telephony/common/com/android/internal/telephony/TelephonyPermissions.java
@@ -651,4 +651,23 @@ public final class TelephonyPermissions {
throw new SecurityException(message + ": Only shell user can call it");
}
+
+ /**
+ * Returns the target SDK version number for a given package name.
+ *
+ * This call MUST be invoked before clearing the calling UID.
+ *
+ * @return target SDK if the package is found or INT_MAX.
+ */
+ public static int getTargetSdk(Context c, String packageName) {
+ try {
+ final ApplicationInfo ai = c.getPackageManager().getApplicationInfoAsUser(
+ packageName, 0, UserHandle.getUserHandleForUid(Binder.getCallingUid()));
+ if (ai != null) return ai.targetSdkVersion;
+ } catch (PackageManager.NameNotFoundException unexpected) {
+ Log.e(LOG_TAG, "Failed to get package info for pkg="
+ + packageName + ", uid=" + Binder.getCallingUid());
+ }
+ return Integer.MAX_VALUE;
+ }
}