Loading services/core/java/com/android/server/pm/ModuleInfoProvider.java +13 −5 Original line number Diff line number Diff line Loading @@ -64,6 +64,7 @@ public class ModuleInfoProvider { // TODO: Move this to an earlier boot phase if anybody requires it then. private volatile boolean mMetadataLoaded; private volatile String mPackageName; ModuleInfoProvider(Context context, IPackageManager packageManager) { mContext = context; Loading @@ -81,9 +82,9 @@ public class ModuleInfoProvider { /** Called by the {@code PackageManager} when it has completed its boot sequence */ public void systemReady() { final String packageName = mContext.getResources().getString( mPackageName = mContext.getResources().getString( R.string.config_defaultModuleMetadataProvider); if (TextUtils.isEmpty(packageName)) { if (TextUtils.isEmpty(mPackageName)) { Slog.w(TAG, "No configured module metadata provider."); return; } Loading @@ -91,13 +92,13 @@ public class ModuleInfoProvider { final Resources packageResources; final PackageInfo pi; try { pi = mPackageManager.getPackageInfo(packageName, pi = mPackageManager.getPackageInfo(mPackageName, PackageManager.GET_META_DATA, UserHandle.USER_SYSTEM); Context packageContext = mContext.createPackageContext(packageName, 0); Context packageContext = mContext.createPackageContext(mPackageName, 0); packageResources = packageContext.getResources(); } catch (RemoteException | NameNotFoundException e) { Slog.w(TAG, "Unable to discover metadata package: " + packageName, e); Slog.w(TAG, "Unable to discover metadata package: " + mPackageName, e); return; } Loading Loading @@ -201,4 +202,11 @@ public class ModuleInfoProvider { return mModuleInfo.get(packageName); } String getPackageName() { if (!mMetadataLoaded) { throw new IllegalStateException("Call to getVersion before metadata loaded"); } return mPackageName; } } services/core/java/com/android/server/pm/PackageManagerService.java +5 −0 Original line number Diff line number Diff line Loading @@ -24079,6 +24079,11 @@ public class PackageManagerService extends IPackageManager.Stub | (appInfo.isVendor() ? IPackageManagerNative.LOCATION_VENDOR : 0) | (appInfo.isProduct() ? IPackageManagerNative.LOCATION_PRODUCT : 0)); } @Override public String getModuleMetadataPackageName() throws RemoteException { return PackageManagerService.this.mModuleInfoProvider.getPackageName(); } } private class PackageManagerInternalImpl extends PackageManagerInternal { Loading
services/core/java/com/android/server/pm/ModuleInfoProvider.java +13 −5 Original line number Diff line number Diff line Loading @@ -64,6 +64,7 @@ public class ModuleInfoProvider { // TODO: Move this to an earlier boot phase if anybody requires it then. private volatile boolean mMetadataLoaded; private volatile String mPackageName; ModuleInfoProvider(Context context, IPackageManager packageManager) { mContext = context; Loading @@ -81,9 +82,9 @@ public class ModuleInfoProvider { /** Called by the {@code PackageManager} when it has completed its boot sequence */ public void systemReady() { final String packageName = mContext.getResources().getString( mPackageName = mContext.getResources().getString( R.string.config_defaultModuleMetadataProvider); if (TextUtils.isEmpty(packageName)) { if (TextUtils.isEmpty(mPackageName)) { Slog.w(TAG, "No configured module metadata provider."); return; } Loading @@ -91,13 +92,13 @@ public class ModuleInfoProvider { final Resources packageResources; final PackageInfo pi; try { pi = mPackageManager.getPackageInfo(packageName, pi = mPackageManager.getPackageInfo(mPackageName, PackageManager.GET_META_DATA, UserHandle.USER_SYSTEM); Context packageContext = mContext.createPackageContext(packageName, 0); Context packageContext = mContext.createPackageContext(mPackageName, 0); packageResources = packageContext.getResources(); } catch (RemoteException | NameNotFoundException e) { Slog.w(TAG, "Unable to discover metadata package: " + packageName, e); Slog.w(TAG, "Unable to discover metadata package: " + mPackageName, e); return; } Loading Loading @@ -201,4 +202,11 @@ public class ModuleInfoProvider { return mModuleInfo.get(packageName); } String getPackageName() { if (!mMetadataLoaded) { throw new IllegalStateException("Call to getVersion before metadata loaded"); } return mPackageName; } }
services/core/java/com/android/server/pm/PackageManagerService.java +5 −0 Original line number Diff line number Diff line Loading @@ -24079,6 +24079,11 @@ public class PackageManagerService extends IPackageManager.Stub | (appInfo.isVendor() ? IPackageManagerNative.LOCATION_VENDOR : 0) | (appInfo.isProduct() ? IPackageManagerNative.LOCATION_PRODUCT : 0)); } @Override public String getModuleMetadataPackageName() throws RemoteException { return PackageManagerService.this.mModuleInfoProvider.getPackageName(); } } private class PackageManagerInternalImpl extends PackageManagerInternal {