Add APIs for mapping between new and current package names.
This will allow Market and others to find out what the "real" name
of a package is, when it is currently running under the old name of
a previously installed version.
diff --git a/services/java/com/android/server/PackageManagerService.java b/services/java/com/android/server/PackageManagerService.java
index 4a60445..a5213a0 100644
--- a/services/java/com/android/server/PackageManagerService.java
+++ b/services/java/com/android/server/PackageManagerService.java
@@ -1076,6 +1076,28 @@
return null;
}
+ public String[] currentToCanonicalPackageNames(String[] names) {
+ String[] out = new String[names.length];
+ synchronized (mPackages) {
+ for (int i=names.length-1; i>=0; i--) {
+ PackageSetting ps = mSettings.mPackages.get(names[i]);
+ out[i] = ps != null && ps.realName != null ? ps.realName : names[i];
+ }
+ }
+ return out;
+ }
+
+ public String[] canonicalToCurrentPackageNames(String[] names) {
+ String[] out = new String[names.length];
+ synchronized (mPackages) {
+ for (int i=names.length-1; i>=0; i--) {
+ String cur = mSettings.mRenamedPackages.get(names[i]);
+ out[i] = cur != null ? cur : names[i];
+ }
+ }
+ return out;
+ }
+
public int getPackageUid(String packageName) {
synchronized (mPackages) {
PackageParser.Package p = mPackages.get(packageName);