From f7893cc6086cacf0076ee7ce75367c3ff1f04a49 Mon Sep 17 00:00:00 2001 From: Jared Duke Date: Fri, 19 May 2023 22:20:32 +0000 Subject: [PATCH 1/2] Remove unnecessary system_server keep rules By referencing the aapt-generated keep rules for framework manifest, we can remove explicit keep rules for classes referenced in that manifest. Bug: 272495195 Test: m + check delta in services.jar Change-Id: Ica8ccd0459354dacfbaec838bd70f56796c7c2e7 --- services/proguard.flags | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/services/proguard.flags b/services/proguard.flags index 4c2830e5c447d..85d05afdccc68 100644 --- a/services/proguard.flags +++ b/services/proguard.flags @@ -42,19 +42,6 @@ -keep,allowoptimization,allowaccessmodification class * extends android.os.IInterface -keep,allowoptimization,allowaccessmodification class * extends android.os.IHwInterface -# Global entities normally kept through explicit Manifest entries -# TODO(b/210510433): Revisit and consider generating from frameworks/base/core/res/AndroidManifest.xml, -# by including that manifest with the library rule that triggers optimization. --keep,allowoptimization,allowaccessmodification class com.android.server.** extends android.app.Activity --keep,allowoptimization,allowaccessmodification class com.android.server.** extends android.app.Service --keep,allowoptimization,allowaccessmodification class com.android.server.** extends android.app.backup.BackupAgent --keep,allowoptimization,allowaccessmodification class com.android.server.** extends android.content.BroadcastReceiver --keep,allowoptimization,allowaccessmodification class com.android.server.** extends android.content.ContentProvider --keep,allowoptimization,allowaccessmodification class com.android.server.** extends android.preference.Preference --keep,allowoptimization,allowaccessmodification class com.android.server.** extends android.view.View { - public (...); -} - # Various classes subclassed in or referenced via JNI in ethernet-service -keep public class android.net.** { *; } -keep,allowoptimization,allowaccessmodification class com.android.net.module.util.* { *; } From 5271e515783ae61178c03ba58e96c15fc825a91e Mon Sep 17 00:00:00 2001 From: "an.xi" Date: Thu, 2 Feb 2023 12:10:22 +0000 Subject: [PATCH 2/2] cec: resolve HdmiCecTvPowerToggleTest issue [1/1] PD#SWPL-105252 BUG=269812391 Problem: PendingActionClearedCallback in disableDevice could be called after the local device is initiated. Solution: Clear the running actions and call the cleared callback directly in disableDevice method. Verify: sc2 Change-Id: I83d292dea4318f6978039076e2b8d302deb2e5f4 Signed-off-by: an.xi --- .../com/android/server/hdmi/HdmiCecLocalDevice.java | 10 ++++++++++ .../server/hdmi/HdmiCecLocalDeviceAudioSystem.java | 8 ++++++++ 2 files changed, 18 insertions(+) mode change 100755 => 100644 services/core/java/com/android/server/hdmi/HdmiCecLocalDevice.java diff --git a/services/core/java/com/android/server/hdmi/HdmiCecLocalDevice.java b/services/core/java/com/android/server/hdmi/HdmiCecLocalDevice.java old mode 100755 new mode 100644 index fb2d2ee08cbda..84868f58d9227 --- a/services/core/java/com/android/server/hdmi/HdmiCecLocalDevice.java +++ b/services/core/java/com/android/server/hdmi/HdmiCecLocalDevice.java @@ -1125,6 +1125,16 @@ abstract class HdmiCecLocalDevice { removeActionExcept(clazz, null); } + // Remove all running actions. + @ServiceThreadOnly + void removeAllActions() { + assertRunOnServiceThread(); + for (HdmiCecFeatureAction action : mActions) { + action.finish(false); + } + mActions.clear(); + } + // Remove all actions matched with the given Class type besides |exception|. @ServiceThreadOnly void removeActionExcept( diff --git a/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystem.java b/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystem.java index 32ff5e2208254..a46dd0460d3b3 100644 --- a/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystem.java +++ b/services/core/java/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystem.java @@ -229,6 +229,14 @@ public class HdmiCecLocalDeviceAudioSystem extends HdmiCecLocalDeviceSource { super.disableDevice(initiatedByCec, callback); assertRunOnServiceThread(); mService.unregisterTvInputCallback(mTvInputCallback); + // Removing actions and invoking the callback is similar to + // HdmiCecLocalDevicePlayback#disableDevice and HdmiCecLocalDeviceTv#disableDevice, + // with the difference that in those classes only specific actions are removed and + // here we remove all actions. We don't expect any issues with removing all actions + // at this time, but we have to pay attention in the future. + removeAllActions(); + // Call the callback instantly or else it will be called 5 seconds later. + checkIfPendingActionsCleared(); } @Override