Merge "Change SharedConnectivityService's permission check to use checkCallingOrSelfPermission" into udc-dev am: 68e79acf4a

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/21564426

Change-Id: I987bba81b5f67990b5a8202864a6827ffd99f4cc
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
TreeHugger Robot
2023-02-24 20:11:03 +00:00
committed by Automerger Merge Worker

View File

@@ -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");
}