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

Commit 59fc86fd authored by Santiago Seifert's avatar Santiago Seifert
Browse files

Prevent apps from publishing system routes

Bug: 280606784
Test: atest MediaRouter2HostSideTest CtsMediaBetterTogetherTestCases
Change-Id: I4f97da6840dab0aaa966e052a49ca4bde39dd23a
parent 9f950358
Loading
Loading
Loading
Loading
+10 −0
Original line number Original line Diff line number Diff line
@@ -27,6 +27,7 @@ import android.content.Intent;
import android.content.ServiceConnection;
import android.content.ServiceConnection;
import android.media.IMediaRoute2ProviderService;
import android.media.IMediaRoute2ProviderService;
import android.media.IMediaRoute2ProviderServiceCallback;
import android.media.IMediaRoute2ProviderServiceCallback;
import android.media.MediaRoute2Info;
import android.media.MediaRoute2ProviderInfo;
import android.media.MediaRoute2ProviderInfo;
import android.media.MediaRoute2ProviderService;
import android.media.MediaRoute2ProviderService;
import android.media.RouteDiscoveryPreference;
import android.media.RouteDiscoveryPreference;
@@ -641,6 +642,15 @@ final class MediaRoute2ProviderServiceProxy extends MediaRoute2Provider


        @Override
        @Override
        public void notifyProviderUpdated(MediaRoute2ProviderInfo providerInfo) {
        public void notifyProviderUpdated(MediaRoute2ProviderInfo providerInfo) {
            for (MediaRoute2Info route : providerInfo.getRoutes()) {
                if (route.isSystemRoute()) {
                    throw new SecurityException(
                            "Only the system is allowed to publish system routes. "
                                    + "Disallowed route: "
                                    + route);
                }
            }

            Connection connection = mConnectionRef.get();
            Connection connection = mConnectionRef.get();
            if (connection != null) {
            if (connection != null) {
                connection.postProviderUpdated(providerInfo);
                connection.postProviderUpdated(providerInfo);