Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f8a572e3 authored by Santiago Seifert's avatar Santiago Seifert Committed by Android (Google) Code Review
Browse files

Merge "Prevent auto-binding when provider service dies" into main

parents 4b845768 04c77a2d
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -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"
}
+13 −4
Original line number Diff line number Diff line
@@ -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;
@@ -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();
        }
    }
+5 −1
Original line number Diff line number Diff line
@@ -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;
@@ -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);