diff options
| author | 2020-05-01 13:15:28 -0700 | |
|---|---|---|
| committer | 2020-05-01 13:27:31 -0700 | |
| commit | 64435d51a8a47e367e4a0522a8572e9c5044bd88 (patch) | |
| tree | 3255e4fecd90546d629aad3b4790f4efce0dd206 | |
| parent | 8650e9aa11e3ad5c72b11e651170060d9fa19cde (diff) | |
[pm] add DATA_LOADER_TYPE to broadcast intent for fresh installs
Test: manual with incremental install
Before:
05-01 19:43:29.907 12326 12326 E PhoneskyPackageAdded: Action: android.intent.action.PACKAGE_ADDED-----------_
05-01 19:43:29.907 12326 12326 E PhoneskyPackageAdded: Data: package:com.unity.megacity
05-01 19:43:29.908 12326 12326 E PhoneskyPackageAdded: Extras: android.intent.extra.UID : 10236
05-01 19:43:29.908 12326 12326 E PhoneskyPackageAdded: Extras: android.intent.extra.user_handle : 0
05-01 19:43:29.908 12326 12326 E PhoneskyPackageAdded: -----------------------
After :
05-01 20:13:19.762 12359 12359 E PhoneskyPackageAdded: Action: android.intent.action.PACKAGE_ADDED-----------_
05-01 20:13:19.763 12359 12359 E PhoneskyPackageAdded: Data: package:com.unity.megacity
05-01 20:13:19.763 12359 12359 E PhoneskyPackageAdded: Extras: android.intent.extra.UID : 10236
05-01 20:13:19.763 12359 12359 E PhoneskyPackageAdded: Extras: android.content.pm.extra.DATA_LOADER_TYPE : 2
05-01 20:13:19.764 12359 12359 E PhoneskyPackageAdded: Extras: android.intent.extra.user_handle : 0
05-01 20:13:19.764 12359 12359 E PhoneskyPackageAdded: -----------------------
BUG: 155502399
Change-Id: Id161686ab01813ed272311c2d0ba1ec210c7d6a3
| -rw-r--r-- | services/core/java/com/android/server/pm/PackageManagerService.java | 22 | ||||
| -rw-r--r-- | services/tests/servicestests/src/com/android/server/pm/PackageManagerServiceTest.java | 2 |
2 files changed, 15 insertions, 9 deletions
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 7adafe3ed658..e6e2df87754f 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -2169,7 +2169,8 @@ public class PackageManagerService extends IPackageManager.Stub int appId = UserHandle.getAppId(res.uid); boolean isSystem = res.pkg.isSystem(); sendPackageAddedForNewUsers(packageName, isSystem || virtualPreload, - virtualPreload /*startReceiver*/, appId, firstUserIds, firstInstantUserIds); + virtualPreload /*startReceiver*/, appId, firstUserIds, firstInstantUserIds, + dataLoaderType); // Send added for users that don't see the package for the first time Bundle extras = new Bundle(1); @@ -12638,13 +12639,14 @@ public class PackageManagerService extends IPackageManager.Stub } private void sendPackageAddedForUser(String packageName, PackageSetting pkgSetting, - int userId) { + int userId, int dataLoaderType) { final boolean isSystem = isSystemApp(pkgSetting) || isUpdatedSystemApp(pkgSetting); final boolean isInstantApp = pkgSetting.getInstantApp(userId); final int[] userIds = isInstantApp ? EMPTY_INT_ARRAY : new int[] { userId }; final int[] instantUserIds = isInstantApp ? new int[] { userId } : EMPTY_INT_ARRAY; sendPackageAddedForNewUsers(packageName, isSystem /*sendBootCompleted*/, - false /*startReceiver*/, pkgSetting.appId, userIds, instantUserIds); + false /*startReceiver*/, pkgSetting.appId, userIds, instantUserIds, + dataLoaderType); // Send a session commit broadcast final PackageInstaller.SessionInfo info = new PackageInstaller.SessionInfo(); @@ -12655,7 +12657,8 @@ public class PackageManagerService extends IPackageManager.Stub @Override public void sendPackageAddedForNewUsers(String packageName, boolean sendBootCompleted, - boolean includeStopped, @AppIdInt int appId, int[] userIds, int[] instantUserIds) { + boolean includeStopped, @AppIdInt int appId, int[] userIds, int[] instantUserIds, + int dataLoaderType) { if (ArrayUtils.isEmpty(userIds) && ArrayUtils.isEmpty(instantUserIds)) { return; } @@ -12664,6 +12667,7 @@ public class PackageManagerService extends IPackageManager.Stub final int uid = UserHandle.getUid( (ArrayUtils.isEmpty(userIds) ? instantUserIds[0] : userIds[0]), appId); extras.putInt(Intent.EXTRA_UID, uid); + extras.putInt(PackageInstaller.EXTRA_DATA_LOADER_TYPE, dataLoaderType); sendPackageBroadcast(Intent.ACTION_PACKAGE_ADDED, packageName, extras, 0, null, null, userIds, instantUserIds, @@ -12781,7 +12785,7 @@ public class PackageManagerService extends IPackageManager.Stub } } if (sendAdded) { - sendPackageAddedForUser(packageName, pkgSetting, userId); + sendPackageAddedForUser(packageName, pkgSetting, userId, DataLoaderType.NONE); return true; } if (sendRemoved) { @@ -13014,7 +13018,7 @@ public class PackageManagerService extends IPackageManager.Stub prepareAppDataAfterInstallLIF(pkgSetting.pkg); } } - sendPackageAddedForUser(packageName, pkgSetting, userId); + sendPackageAddedForUser(packageName, pkgSetting, userId, DataLoaderType.NONE); synchronized (mLock) { updateSequenceNumberLP(pkgSetting, new int[]{ userId }); } @@ -18313,7 +18317,8 @@ public class PackageManagerService extends IPackageManager.Stub PackageInstalledInfo installedInfo = appearedChildPackages.valueAt(i); packageSender.sendPackageAddedForNewUsers(installedInfo.name, true /*sendBootCompleted*/, false /*startReceiver*/, - UserHandle.getAppId(installedInfo.uid), installedInfo.newUsers, null); + UserHandle.getAppId(installedInfo.uid), installedInfo.newUsers, null, + DataLoaderType.NONE); } } @@ -25286,7 +25291,8 @@ interface PackageSender { final IIntentReceiver finishedReceiver, final int[] userIds, int[] instantUserIds, @Nullable SparseArray<int[]> broadcastWhitelist); void sendPackageAddedForNewUsers(String packageName, boolean sendBootCompleted, - boolean includeStopped, int appId, int[] userIds, int[] instantUserIds); + boolean includeStopped, int appId, int[] userIds, int[] instantUserIds, + int dataLoaderType); void notifyPackageAdded(String packageName, int uid); void notifyPackageChanged(String packageName, int uid); void notifyPackageRemoved(String packageName, int uid); diff --git a/services/tests/servicestests/src/com/android/server/pm/PackageManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/pm/PackageManagerServiceTest.java index 0a68688cef9e..37c106094954 100644 --- a/services/tests/servicestests/src/com/android/server/pm/PackageManagerServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/pm/PackageManagerServiceTest.java @@ -53,7 +53,7 @@ public class PackageManagerServiceTest { public void sendPackageAddedForNewUsers(String packageName, boolean sendBootComplete, boolean includeStopped, int appId, - int[] userIds, int[] instantUserIds) { + int[] userIds, int[] instantUserIds, int dataLoaderType) { } @Override |