diff --git a/wifi/java/src/android/net/wifi/sharedconnectivity/service/SharedConnectivityService.java b/wifi/java/src/android/net/wifi/sharedconnectivity/service/SharedConnectivityService.java index ff7246f468599..b751f1eaa40e3 100644 --- a/wifi/java/src/android/net/wifi/sharedconnectivity/service/SharedConnectivityService.java +++ b/wifi/java/src/android/net/wifi/sharedconnectivity/service/SharedConnectivityService.java @@ -130,10 +130,17 @@ public abstract class SharedConnectivityService extends Service { @RequiresPermission(anyOf = {android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD}) + /** + * checkPermissions is using checkCallingOrSelfPermission to support CTS testing of this + * service. This does allow a process to bind to itself if it holds the proper + * permission. We do not consider this to be an issue given that the process can already + * access the service data since they are in the same process. + */ private void checkPermissions() { - if (checkCallingPermission(NETWORK_SETTINGS) != PackageManager.PERMISSION_GRANTED - && checkCallingPermission(NETWORK_SETUP_WIZARD) - != PackageManager.PERMISSION_GRANTED) { + if (checkCallingOrSelfPermission(NETWORK_SETTINGS) + != PackageManager.PERMISSION_GRANTED + && checkCallingOrSelfPermission(NETWORK_SETUP_WIZARD) + != PackageManager.PERMISSION_GRANTED) { throw new SecurityException("Calling process must have NETWORK_SETTINGS or" + " NETWORK_SETUP_WIZARD permission"); }