From 9f7cbe51e13fe21588a8682eae6ccd261890a713 Mon Sep 17 00:00:00 2001 From: Guojing Yuan Date: Tue, 27 Jul 2021 00:20:42 +0000 Subject: [PATCH] Add permission check while creating CompanionDeviceService Fix: 194435859 Test: N/A Change-Id: Ia701706f54b131fa6a72cc188fb62919565b0c70 --- .../server/companion/CompanionDeviceManagerService.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java b/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java index 9ff1b10c09ed9..b1c67fdf70e13 100644 --- a/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java +++ b/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java @@ -17,6 +17,7 @@ package com.android.server.companion; +import static android.Manifest.permission.BIND_COMPANION_DEVICE_SERVICE; import static android.bluetooth.le.ScanSettings.CALLBACK_TYPE_ALL_MATCHES; import static android.bluetooth.le.ScanSettings.SCAN_MODE_BALANCED; import static android.content.Context.BIND_IMPORTANT; @@ -1197,6 +1198,12 @@ public class CompanionDeviceManagerService extends SystemService implements Bind + " has " + packageResolveInfos.size()); return new ServiceConnector.NoOp<>(); } + String servicePermission = packageResolveInfos.get(0).serviceInfo.permission; + if (!BIND_COMPANION_DEVICE_SERVICE.equals(servicePermission)) { + Slog.w(LOG_TAG, "Binding CompanionDeviceService must have " + + BIND_COMPANION_DEVICE_SERVICE + " permission."); + return new ServiceConnector.NoOp<>(); + } ComponentName componentName = packageResolveInfos.get(0).serviceInfo.getComponentName(); Slog.i(LOG_TAG, "Initializing CompanionDeviceService binding for " + componentName); return new ServiceConnector.Impl(getContext(),