From f8f1b38fd1a97ded49c15a32d3189082b2db63e4 Mon Sep 17 00:00:00 2001 From: Richard Uhler Date: Wed, 23 Jan 2019 10:46:30 +0000 Subject: [PATCH] Remove package name from ROLLBACK_EXECUTED broadcast. The receiver of the broadcast would likely want to query the rolled back packages via RollbackManager regardless, and it's not clear which package to put when an atomic set of packages is rolled back. Bug: 112431924 Test: atest RollbackTest Change-Id: Ic8db00b62d8993e00a0dd2cb79ae68c430b45bb8 --- core/java/android/content/Intent.java | 1 - .../server/rollback/RollbackManagerServiceImpl.java | 8 +++----- .../android/tests/rollback/RollbackBroadcastReceiver.java | 1 - .../src/com/android/tests/rollback/RollbackTest.java | 5 +---- 4 files changed, 4 insertions(+), 11 deletions(-) diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java index 3c487a13af4bc..13ce714decbd8 100644 --- a/core/java/android/content/Intent.java +++ b/core/java/android/content/Intent.java @@ -2363,7 +2363,6 @@ public class Intent implements Parcelable, Cloneable { /** * Broadcast Action: An existing version of an application package has been * rolled back to a previous version. - * The data contains the name of the package. * *

This is a protected intent that can only be sent * by the system. diff --git a/services/core/java/com/android/server/rollback/RollbackManagerServiceImpl.java b/services/core/java/com/android/server/rollback/RollbackManagerServiceImpl.java index 2b76d00481820..7f515bf63bc1c 100644 --- a/services/core/java/com/android/server/rollback/RollbackManagerServiceImpl.java +++ b/services/core/java/com/android/server/rollback/RollbackManagerServiceImpl.java @@ -16,7 +16,6 @@ package com.android.server.rollback; -import android.Manifest; import android.app.AppOpsManager; import android.content.BroadcastReceiver; import android.content.Context; @@ -36,7 +35,6 @@ import android.content.pm.VersionedPackage; import android.content.rollback.IRollbackManager; import android.content.rollback.PackageRollbackInfo; import android.content.rollback.RollbackInfo; -import android.net.Uri; import android.os.Binder; import android.os.Bundle; import android.os.Environment; @@ -384,12 +382,12 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub { addRecentlyExecutedRollback(rollback); sendSuccess(statusReceiver); - Intent broadcast = new Intent(Intent.ACTION_PACKAGE_ROLLBACK_EXECUTED, - Uri.fromParts("package", targetPackageName, - Manifest.permission.MANAGE_ROLLBACKS)); + Intent broadcast = new Intent(Intent.ACTION_PACKAGE_ROLLBACK_EXECUTED); // TODO: This call emits the warning "Calling a method in the // system process without a qualified user". Fix that. + // TODO: Limit this to receivers holding the + // MANAGE_ROLLBACKS permission? mContext.sendBroadcast(broadcast); } ); diff --git a/tests/RollbackTest/src/com/android/tests/rollback/RollbackBroadcastReceiver.java b/tests/RollbackTest/src/com/android/tests/rollback/RollbackBroadcastReceiver.java index d3c39f0b82488..030641bf08958 100644 --- a/tests/RollbackTest/src/com/android/tests/rollback/RollbackBroadcastReceiver.java +++ b/tests/RollbackTest/src/com/android/tests/rollback/RollbackBroadcastReceiver.java @@ -44,7 +44,6 @@ class RollbackBroadcastReceiver extends BroadcastReceiver { RollbackBroadcastReceiver() { IntentFilter filter = new IntentFilter(); filter.addAction(Intent.ACTION_PACKAGE_ROLLBACK_EXECUTED); - filter.addDataScheme("package"); InstrumentationRegistry.getContext().registerReceiver(this, filter); } diff --git a/tests/RollbackTest/src/com/android/tests/rollback/RollbackTest.java b/tests/RollbackTest/src/com/android/tests/rollback/RollbackTest.java index b9271fe5d1353..9d67cea05fc8b 100644 --- a/tests/RollbackTest/src/com/android/tests/rollback/RollbackTest.java +++ b/tests/RollbackTest/src/com/android/tests/rollback/RollbackTest.java @@ -25,7 +25,6 @@ import android.content.IntentFilter; import android.content.rollback.PackageRollbackInfo; import android.content.rollback.RollbackInfo; import android.content.rollback.RollbackManager; -import android.net.Uri; import android.os.Handler; import android.os.HandlerThread; import android.support.test.InstrumentationRegistry; @@ -152,7 +151,6 @@ public class RollbackTest { // received could lead to test flakiness. Intent broadcast = broadcastReceiver.poll(5, TimeUnit.SECONDS); assertNotNull(broadcast); - assertEquals(TEST_APP_A, broadcast.getData().getSchemeSpecificPart()); assertNull(broadcastReceiver.poll(0, TimeUnit.SECONDS)); // Verify the recent rollback has been recorded. @@ -474,8 +472,7 @@ public class RollbackTest { @Test public void testRollbackBroadcastRestrictions() throws Exception { RollbackBroadcastReceiver broadcastReceiver = new RollbackBroadcastReceiver(); - Intent broadcast = new Intent(Intent.ACTION_PACKAGE_ROLLBACK_EXECUTED, - Uri.fromParts("package", "com.android.tests.rollback.bogus", null)); + Intent broadcast = new Intent(Intent.ACTION_PACKAGE_ROLLBACK_EXECUTED); try { InstrumentationRegistry.getContext().sendBroadcast(broadcast); fail("Succeeded in sending restricted broadcast from app context.");