summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
authorRoshan Pius <rpius@google.com>2021-04-01 11:16:31 -0700
committerRoshan Pius <rpius@google.com>2021-04-13 20:28:00 -0700
commit3ec33a7ef6de5ca373f6904e49a873a350df653e (patch)
treea2dfbe0d1ed3ec25565488a55e9269fc2a1f3e62 /core/java/android
parent03d6450b478c28fe4f919cb6c8f60a17155bc1c0 (diff)
UwbService: Enforce UWB_RANGING runtime permission
i. Use the provided AttributionSource for runtime permission checks. ii. Check for preflight permissions when the callbacks are registered during openRanging. iii. Check for data delivery permission when the callback is providing a new ranging result. Bug: 183904955 Test: Compiles Change-Id: I8f3b42d865ac0d33d579ad4558b3aad6470bba94
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/uwb/IUwbAdapter.aidl5
-rw-r--r--core/java/android/uwb/RangingManager.java3
2 files changed, 5 insertions, 3 deletions
diff --git a/core/java/android/uwb/IUwbAdapter.aidl b/core/java/android/uwb/IUwbAdapter.aidl
index 30da248e9e87..62f1c0c3fa0d 100644
--- a/core/java/android/uwb/IUwbAdapter.aidl
+++ b/core/java/android/uwb/IUwbAdapter.aidl
@@ -16,6 +16,7 @@
package android.uwb;
+import android.content.AttributionSource;
import android.os.PersistableBundle;
import android.uwb.IUwbAdapterStateCallbacks;
import android.uwb.IUwbRangingCallbacks;
@@ -77,11 +78,13 @@ interface IUwbAdapter {
* If the provided sessionHandle is already open for the calling client, then
* #onRangingOpenFailed must be called and the new session must not be opened.
*
+ * @param attributionSource AttributionSource to use for permission enforcement.
* @param sessionHandle the session handle to open ranging for
* @param rangingCallbacks the callbacks used to deliver ranging information
* @param parameters the configuration to use for ranging
*/
- void openRanging(in SessionHandle sessionHandle,
+ void openRanging(in AttributionSource attributionSource,
+ in SessionHandle sessionHandle,
in IUwbRangingCallbacks rangingCallbacks,
in PersistableBundle parameters);
diff --git a/core/java/android/uwb/RangingManager.java b/core/java/android/uwb/RangingManager.java
index ff8b91207166..6bba79600598 100644
--- a/core/java/android/uwb/RangingManager.java
+++ b/core/java/android/uwb/RangingManager.java
@@ -63,8 +63,7 @@ public class RangingManager extends android.uwb.IUwbRangingCallbacks.Stub {
new RangingSession(executor, callbacks, mAdapter, sessionHandle);
mRangingSessionTable.put(sessionHandle, session);
try {
- // TODO: Pass in the attributionSource to the service.
- mAdapter.openRanging(sessionHandle, this, params);
+ mAdapter.openRanging(attributionSource, sessionHandle, this, params);
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}