UwbServiceImpl: Use cleanCallingIdentity to perform permission checks

The AIDL callbacks occur with the vendor service context. So, need to
use the uwbservice context to perform the permission checks.

Bug: 189476827
Test: Manual tests
Change-Id: Ie4d64a610483e759d065ee3f466c23bd6016dbf8
This commit is contained in:
Roshan Pius
2021-05-27 12:09:12 -07:00
parent 9fb45cc8bb
commit fd5170c692

View File

@@ -19,6 +19,7 @@ package com.android.server.uwb;
import android.annotation.NonNull;
import android.content.AttributionSource;
import android.content.Context;
import android.os.Binder;
import android.os.IBinder;
import android.os.PersistableBundle;
import android.os.RemoteException;
@@ -171,8 +172,10 @@ public class UwbServiceImpl extends IUwbAdapter.Stub implements IBinder.DeathRec
RangingReport rangingReport)
throws RemoteException {
if (!mIsValid) return;
if (!mUwbInjector.checkUwbRangingPermissionForDataDelivery(
mAttributionSource, "uwb ranging result")) {
boolean permissionGranted = Binder.withCleanCallingIdentity(
() -> mUwbInjector.checkUwbRangingPermissionForDataDelivery(
mAttributionSource, "uwb ranging result"));
if (!permissionGranted) {
Log.e(TAG, "Not delivering ranging result because of permission denial"
+ mSessionHandle);
return;