Loading media/java/android/media/flags/media_better_together.aconfig +7 −0 Original line number Diff line number Diff line Loading @@ -83,3 +83,10 @@ flag { description: "Notify ActivityManager with the changes in playback state of the media session." bug: "295518668" } flag { name: "enable_prevention_of_keep_alive_route_providers" namespace: "media_solutions" description: "Enables mechanisms to prevent route providers from keeping malicious apps alive." bug: "263520343" } services/core/java/com/android/server/media/MediaRoute2ProviderServiceProxy.java +13 −4 Original line number Diff line number Diff line Loading @@ -44,6 +44,7 @@ import android.util.Log; import android.util.Slog; import com.android.internal.annotations.GuardedBy; import com.android.media.flags.Flags; import java.lang.ref.WeakReference; import java.util.ArrayList; Loading Loading @@ -318,11 +319,19 @@ final class MediaRoute2ProviderServiceProxy extends MediaRoute2Provider @Override public void onBindingDied(ComponentName name) { if (DEBUG) { Slog.d(TAG, this + ": Service binding died"); } unbind(); if (shouldBind()) { if (Flags.enablePreventionOfKeepAliveRouteProviders()) { Slog.w( TAG, TextUtils.formatSimple( "Route provider service (%s) binding died, but we did not rebind.", name.toString())); } else if (shouldBind()) { Slog.w( TAG, TextUtils.formatSimple( "Rebound to provider service (%s) after binding died.", name.toString())); bind(); } } Loading services/core/java/com/android/server/media/MediaRoute2ProviderWatcher.java +5 −1 Original line number Diff line number Diff line Loading @@ -33,6 +33,8 @@ import android.os.UserHandle; import android.util.Log; import android.util.Slog; import com.android.media.flags.Flags; import java.io.PrintWriter; import java.util.ArrayList; import java.util.Collections; Loading Loading @@ -86,7 +88,9 @@ final class MediaRoute2ProviderWatcher { filter.addAction(Intent.ACTION_PACKAGE_REMOVED); filter.addAction(Intent.ACTION_PACKAGE_CHANGED); filter.addAction(Intent.ACTION_PACKAGE_REPLACED); if (!Flags.enablePreventionOfKeepAliveRouteProviders()) { filter.addAction(Intent.ACTION_PACKAGE_RESTARTED); } filter.addDataScheme("package"); mContext.registerReceiverAsUser(mScanPackagesReceiver, new UserHandle(mUserId), filter, null, mHandler); Loading Loading
media/java/android/media/flags/media_better_together.aconfig +7 −0 Original line number Diff line number Diff line Loading @@ -83,3 +83,10 @@ flag { description: "Notify ActivityManager with the changes in playback state of the media session." bug: "295518668" } flag { name: "enable_prevention_of_keep_alive_route_providers" namespace: "media_solutions" description: "Enables mechanisms to prevent route providers from keeping malicious apps alive." bug: "263520343" }
services/core/java/com/android/server/media/MediaRoute2ProviderServiceProxy.java +13 −4 Original line number Diff line number Diff line Loading @@ -44,6 +44,7 @@ import android.util.Log; import android.util.Slog; import com.android.internal.annotations.GuardedBy; import com.android.media.flags.Flags; import java.lang.ref.WeakReference; import java.util.ArrayList; Loading Loading @@ -318,11 +319,19 @@ final class MediaRoute2ProviderServiceProxy extends MediaRoute2Provider @Override public void onBindingDied(ComponentName name) { if (DEBUG) { Slog.d(TAG, this + ": Service binding died"); } unbind(); if (shouldBind()) { if (Flags.enablePreventionOfKeepAliveRouteProviders()) { Slog.w( TAG, TextUtils.formatSimple( "Route provider service (%s) binding died, but we did not rebind.", name.toString())); } else if (shouldBind()) { Slog.w( TAG, TextUtils.formatSimple( "Rebound to provider service (%s) after binding died.", name.toString())); bind(); } } Loading
services/core/java/com/android/server/media/MediaRoute2ProviderWatcher.java +5 −1 Original line number Diff line number Diff line Loading @@ -33,6 +33,8 @@ import android.os.UserHandle; import android.util.Log; import android.util.Slog; import com.android.media.flags.Flags; import java.io.PrintWriter; import java.util.ArrayList; import java.util.Collections; Loading Loading @@ -86,7 +88,9 @@ final class MediaRoute2ProviderWatcher { filter.addAction(Intent.ACTION_PACKAGE_REMOVED); filter.addAction(Intent.ACTION_PACKAGE_CHANGED); filter.addAction(Intent.ACTION_PACKAGE_REPLACED); if (!Flags.enablePreventionOfKeepAliveRouteProviders()) { filter.addAction(Intent.ACTION_PACKAGE_RESTARTED); } filter.addDataScheme("package"); mContext.registerReceiverAsUser(mScanPackagesReceiver, new UserHandle(mUserId), filter, null, mHandler); Loading