summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Songchun Fan <schfan@google.com> 2020-05-01 13:15:28 -0700
committer Songchun Fan <schfan@google.com> 2020-05-01 13:27:31 -0700
commit64435d51a8a47e367e4a0522a8572e9c5044bd88 (patch)
tree3255e4fecd90546d629aad3b4790f4efce0dd206
parent8650e9aa11e3ad5c72b11e651170060d9fa19cde (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.java22
-rw-r--r--services/tests/servicestests/src/com/android/server/pm/PackageManagerServiceTest.java2
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