uwb(service): Remove stack redundancies (2/2)

1. Rename IUwbAdapter2 -> IUwbAdapter
2. Rename IUwbRangingCallbacks2 -> IUwbRangingCallbacks
3. Move ranging callback permission check to
UwbSessionNotificationManager.
4. Remove all state from UwbServiceImpl.

Bug: b/196225233
Test: Manual testing.
Change-Id: Ie2ae471147d08096a3fe1fb0ea915ab39c838528
diff --git a/framework/java/android/uwb/AdapterStateListener.java b/framework/java/android/uwb/AdapterStateListener.java
index 22bb765..7e82cc6 100644
--- a/framework/java/android/uwb/AdapterStateListener.java
+++ b/framework/java/android/uwb/AdapterStateListener.java
@@ -34,7 +34,7 @@
 public class AdapterStateListener extends IUwbAdapterStateCallbacks.Stub {
     private static final String TAG = "Uwb.StateListener";
 
-    private final IUwbAdapter2 mAdapter;
+    private final IUwbAdapter mAdapter;
     private boolean mIsRegistered = false;
 
     private final Map<AdapterStateCallback, Executor> mCallbackMap = new HashMap<>();
@@ -44,7 +44,7 @@
     @State
     private int mAdapterState = AdapterStateCallback.STATE_DISABLED;
 
-    public AdapterStateListener(@NonNull IUwbAdapter2 adapter) {
+    public AdapterStateListener(@NonNull IUwbAdapter adapter) {
         mAdapter = adapter;
     }
 
diff --git a/framework/java/android/uwb/IUwbAdapter.aidl b/framework/java/android/uwb/IUwbAdapter.aidl
index bb0abb0..c1ddc9a 100644
--- a/framework/java/android/uwb/IUwbAdapter.aidl
+++ b/framework/java/android/uwb/IUwbAdapter.aidl
@@ -19,12 +19,15 @@
 import android.content.AttributionSource;
 import android.os.PersistableBundle;
 import android.uwb.IUwbAdapterStateCallbacks;
+import android.uwb.IUwbAdfProvisionStateCallbacks;
 import android.uwb.IUwbRangingCallbacks;
 import android.uwb.SessionHandle;
+import android.uwb.UwbAddress;
+import android.uwb.IUwbVendorUciCallback;
 
 /**
  * @hide
- * TODO(b/196225233): Remove this when qorvo stack is integrated.
+ * TODO(b/211025367): Remove all the duplicate javadocs here.
  */
 interface IUwbAdapter {
   /*
@@ -38,7 +41,26 @@
    */
   void registerAdapterStateCallbacks(in IUwbAdapterStateCallbacks adapterStateCallbacks);
 
-  /*
+   /*
+    * Register the callbacks used to notify the framework of events and data
+    *
+    * The provided callback's IUwbUciVendorCallback#onVendorNotificationReceived
+    * function must be called immediately following vendorNotification received
+    *
+    * @param callbacks callback to provide Notification data updates to the framework
+    */
+   void registerVendorExtensionCallback(in IUwbVendorUciCallback callbacks);
+
+   /*
+    * Unregister the callbacks used to notify the framework of events and data
+    *
+    * Calling this function with an unregistered callback is a no-op
+    *
+    * @param callbacks callback to unregister
+    */
+   void unregisterVendorExtensionCallback(in IUwbVendorUciCallback callbacks);
+
+   /*
    * Unregister the callbacks used to notify the framework of events and data
    *
    * Calling this function with an unregistered callback is a no-op
@@ -50,16 +72,20 @@
   /**
    * Get the accuracy of the ranging timestamps
    *
+   * @param chipId identifier of UWB chip for multi-HAL devices
+   *
    * @return accuracy of the ranging timestamps in nanoseconds
    */
-  long getTimestampResolutionNanos();
+  long getTimestampResolutionNanos(in String chipId);
 
   /**
    * Provides the capabilities and features of the device
    *
+   * @param chipId identifier of UWB chip for multi-HAL devices
+   *
    * @return specification specific capabilities and features of the device
    */
-  PersistableBundle getSpecificationInfo();
+  PersistableBundle getSpecificationInfo(in String chipId);
 
   /**
    * Request to open a new ranging session
@@ -83,11 +109,13 @@
    * @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
+   * @param chipId identifier of UWB chip for multi-HAL devices
    */
   void openRanging(in AttributionSource attributionSource,
                    in SessionHandle sessionHandle,
                    in IUwbRangingCallbacks rangingCallbacks,
-                   in PersistableBundle parameters);
+                   in PersistableBundle parameters,
+                   in String chipId);
 
   /**
    * Request to start ranging
@@ -149,30 +177,170 @@
    */
   void closeRanging(in SessionHandle sessionHandle);
 
-   /**
-     * Disables or enables UWB for a user
-     *
-     * The provided callback's IUwbAdapterStateCallbacks#onAdapterStateChanged
-     * function must be called immediately following state change.
-     *
-     * @param enabled value representing intent to disable or enable UWB. If
-     * true, any subsequent calls to #openRanging will be allowed. If false,
-     * all active ranging sessions will be closed and subsequent calls to
-     * #openRanging will be disallowed.
-     */
-    void setEnabled(boolean enabled);
+  /**
+   * Add a new controlee to an ongoing session.
+   * <p>This call may be made when the session is open.
+   *
+   * <p>On successfully adding a new controlee to the session
+   * {@link RangingSession.Callback#onControleeAdded(PersistableBundle)} is invoked.
+   *
+   * <p>On failure to add a new controlee to the session,
+   * {@link RangingSession.Callback#onControleeAddFailed(int, PersistableBundle)}is invoked.
+   *
+   * @param sessionHandle the session handle to close ranging for
+   * @param params the parameters for the new controlee.
+   */
+  void addControlee(in SessionHandle sessionHandle, in PersistableBundle params);
 
-   /**
-    * Returns the current enabled/disabled UWB state.
-    *
-    * Possible values are:
-    * IUwbAdapterState#STATE_DISABLED
-    * IUwbAdapterState#STATE_ENABLED_ACTIVE
-    * IUwbAdapterState#STATE_ENABLED_INACTIVE
-    *
-    * @return value representing enabled/disabled UWB state.
-    */
-   int getAdapterState();
+  /**
+   * Remove an existing controlee from an ongoing session.
+   * <p>This call may be made when the session is open.
+   *
+   * <p>On successfully removing an existing controlee from the session
+   * {@link RangingSession.Callback#onControleeRemoved(PersistableBundle)} is invoked.
+   *
+   * <p>On failure to remove an existing controlee from the session,
+   * {@link RangingSession.Callback#onControleeRemoveFailed(int, PersistableBundle)}is invoked.
+   *
+   * @param sessionHandle the session handle to close ranging for
+   * @param params the parameters for the existing controlee.
+   */
+  void removeControlee(in SessionHandle sessionHandle, in PersistableBundle params);
+
+  /**
+   * Suspends an ongoing ranging session.
+   *
+   * <p>A session that has been pauseed may be resumed by calling
+   * {@link RangingSession#resume(PersistableBundle)} without the need to open a new session.
+   *
+   * <p>Suspending a {@link RangingSession} is useful when the lower layers should skip a few
+   * ranging rounds for a session without stopping it.
+   *
+   * <p>If the {@link RangingSession} is no longer needed, use {@link RangingSession#stop()} or
+   * {@link RangingSession#close()} to completely close the session.
+   *
+   * <p>On successfully pauseing the session,
+   * {@link RangingSession.Callback#onPaused(PersistableBundle)} is invoked.
+   *
+   * <p>On failure to pause the session,
+   * {@link RangingSession.Callback#onPauseFailed(int, PersistableBundle)} is invoked.
+   *
+   * @param sessionHandle the session handle to close ranging for
+   * @param params protocol specific parameters for pauseing the session.
+   */
+  void pause(in SessionHandle sessionHandle, in PersistableBundle params);
+
+  /**
+   * Resumes a pauseed ranging session.
+   *
+   * <p>A session that has been previously pauseed using
+   * {@link RangingSession#pause(PersistableBundle)} can be resumed by calling
+   * {@link RangingSession#resume(PersistableBundle)}.
+   *
+   * <p>On successfully resuming the session,
+   * {@link RangingSession.Callback#onResumed(PersistableBundle)} is invoked.
+   *
+   * <p>On failure to pause the session,
+   * {@link RangingSession.Callback#onResumeFailed(int, PersistableBundle)} is invoked.
+   *
+   * @param sessionHandle the session handle to close ranging for
+   * @param params protocol specific parameters the resuming the session.
+   */
+  void resume(in SessionHandle sessionHandle, in PersistableBundle params);
+
+  /**
+   * Send data to a remote device which is part of this ongoing session.
+   * The data is sent by piggybacking the provided data over RRM (initiator -> responder) or
+   * RIM (responder -> initiator).
+   * <p>This is only functional on a FIRA 2.0 compliant device.
+   *
+   * <p>On successfully sending the data,
+   * {@link RangingSession.Callback#onDataSent(UwbAddress, PersistableBundle)} is invoked.
+   *
+   * <p>On failure to send the data,
+   * {@link RangingSession.Callback#onDataSendFailed(UwbAddress, int, PersistableBundle)} is
+   * invoked.
+   *
+   * @param sessionHandle the session handle to close ranging for
+   * @param remoteDeviceAddress remote device's address.
+   * @param params protocol specific parameters the sending the data.
+   * @param data Raw data to be sent.
+   */
+  void sendData(in SessionHandle sessionHandle, in UwbAddress remoteDeviceAddress,
+          in PersistableBundle params, in byte[] data);
+
+  /**
+   * Disables or enables UWB for a user
+   *
+   * The provided callback's IUwbAdapterStateCallbacks#onAdapterStateChanged
+   * function must be called immediately following state change.
+   *
+   * @param enabled value representing intent to disable or enable UWB. If
+   * true, any subsequent calls to #openRanging will be allowed. If false,
+   * all active ranging sessions will be closed and subsequent calls to
+   * #openRanging will be disallowed.
+   */
+  void setEnabled(boolean enabled);
+
+  /**
+   * Returns the current enabled/disabled UWB state.
+   *
+   * Possible values are:
+   * IUwbAdapterState#STATE_DISABLED
+   * IUwbAdapterState#STATE_ENABLED_ACTIVE
+   * IUwbAdapterState#STATE_ENABLED_INACTIVE
+   *
+   * @return value representing enabled/disabled UWB state.
+   */
+  int getAdapterState();
+
+  /**
+   * Returns a list of UWB chip infos in a {@link PersistableBundle}.
+   *
+   * Callers can invoke methods on a specific UWB chip by passing its {@code chipId} to the
+   * method, which can be determined by calling:
+   * <pre>
+   * List<PersistableBundle> chipInfos = getChipInfos();
+   * for (PersistableBundle chipInfo : chipInfos) {
+   *     String chipId = ChipInfoParams.fromBundle(chipInfo).getChipId();
+   * }
+   * </pre>
+   *
+   * @return list of {@link PersistableBundle} containing info about UWB chips for a multi-HAL
+   * system, or a list of info for a single chip for a single HAL system.
+   */
+  List<PersistableBundle> getChipInfos();
+
+  List<String> getChipIds();
+
+  /**
+   * Returns the default UWB chip identifier.
+   *
+   * If callers do not pass a specific {@code chipId} to UWB methods, then the method will be
+   * invoked on the default chip, which is determined at system initialization from a configuration
+   * file.
+   *
+   * @return default UWB chip identifier for a multi-HAL system, or the identifier of the only UWB
+   * chip in a single HAL system.
+   */
+  String getDefaultChipId();
+
+  PersistableBundle addServiceProfile(in PersistableBundle parameters);
+
+  int removeServiceProfile(in PersistableBundle parameters);
+
+  PersistableBundle getAllServiceProfiles();
+
+  PersistableBundle getAdfProvisioningAuthorities(in PersistableBundle parameters);
+
+  PersistableBundle getAdfCertificateAndInfo(in PersistableBundle parameters);
+
+  void provisionProfileAdfByScript(in PersistableBundle serviceProfileBundle,
+            in IUwbAdfProvisionStateCallbacks callback);
+
+  int removeProfileAdf(in PersistableBundle serviceProfileBundle);
+
+  int sendVendorUciMessage(int gid, int oid, in byte[] payload);
 
   /**
    * The maximum allowed time to open a ranging session.
diff --git a/framework/java/android/uwb/IUwbAdapter2.aidl b/framework/java/android/uwb/IUwbAdapter2.aidl
deleted file mode 100644
index edf3e5c..0000000
--- a/framework/java/android/uwb/IUwbAdapter2.aidl
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * Copyright 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.uwb;
-
-import android.content.AttributionSource;
-import android.os.PersistableBundle;
-import android.uwb.IUwbAdapterStateCallbacks;
-import android.uwb.IUwbAdfProvisionStateCallbacks;
-import android.uwb.IUwbRangingCallbacks2;
-import android.uwb.SessionHandle;
-import android.uwb.UwbAddress;
-import android.uwb.IUwbVendorUciCallback;
-
-/**
- * @hide
- * TODO(b/196225233): Rename this to IUwbAdapter when qorvo stack is integrated.
- * Temporary AIDL interface name for the interface between UwbManager & UwbService.
- * The existing IUwbAdapter interface is kept behind for providing backwards
- * compatibility with the old UWB architecture.
- */
-interface IUwbAdapter2 {
-  void registerAdapterStateCallbacks(in IUwbAdapterStateCallbacks adapterStateCallbacks);
-
-  void unregisterAdapterStateCallbacks(in IUwbAdapterStateCallbacks callbacks);
-
-   /*
-    * Register the callbacks used to notify the framework of events and data
-    *
-    * The provided callback's IUwbUciVendorCallback#onVendorNotificationReceived
-    * function must be called immediately following vendorNotification received
-    *
-    * @param callbacks callback to provide Notification data updates to the framework
-    */
-   void registerVendorExtensionCallback(in IUwbVendorUciCallback callbacks);
-
-   /*
-    * Unregister the callbacks used to notify the framework of events and data
-    *
-    * Calling this function with an unregistered callback is a no-op
-    *
-    * @param callbacks callback to unregister
-    */
-   void unregisterVendorExtensionCallback(in IUwbVendorUciCallback callbacks);
-
-
-  long getTimestampResolutionNanos(in String chipId);
-
-  PersistableBundle getSpecificationInfo(in String chipId);
-
-  void openRanging(in AttributionSource attributionSource,
-                   in SessionHandle sessionHandle,
-                   in IUwbRangingCallbacks2 rangingCallbacks,
-                   in PersistableBundle parameters,
-                   in String chipId);
-
-  void startRanging(in SessionHandle sessionHandle,
-                    in PersistableBundle parameters);
-
-  void reconfigureRanging(in SessionHandle sessionHandle,
-                          in PersistableBundle parameters);
-
-  void stopRanging(in SessionHandle sessionHandle);
-
-  void closeRanging(in SessionHandle sessionHandle);
-
-  void addControlee(in SessionHandle sessionHandle, in PersistableBundle params);
-
-  void removeControlee(in SessionHandle sessionHandle, in PersistableBundle params);
-
-  void pause(in SessionHandle sessionHandle, in PersistableBundle params);
-
-  void resume(in SessionHandle sessionHandle, in PersistableBundle params);
-
-  void sendData(in SessionHandle sessionHandle, in UwbAddress remoteDeviceAddress,
-          in PersistableBundle params, in byte[] data);
-
-  void setEnabled(boolean enabled);
-
-  int getAdapterState();
-
-  /**
-   * Returns a list of UWB chip infos in a {@link PersistableBundle}.
-   *
-   * Callers can invoke methods on a specific UWB chip by passing its {@code chipId} to the
-   * method, which can be determined by calling:
-   * <pre>
-   * List<PersistableBundle> chipInfos = getChipInfos();
-   * for (PersistableBundle chipInfo : chipInfos) {
-   *     String chipId = ChipInfoParams.fromBundle(chipInfo).getChipId();
-   * }
-   * </pre>
-   *
-   * @return list of {@link PersistableBundle} containing info about UWB chips for a multi-HAL
-   * system, or a list of info for a single chip for a single HAL system.
-   */
-  List<PersistableBundle> getChipInfos();
-
-  List<String> getChipIds();
-
-  String getDefaultChipId();
-
-  PersistableBundle addServiceProfile(in PersistableBundle parameters);
-
-  int removeServiceProfile(in PersistableBundle parameters);
-
-  PersistableBundle getAllServiceProfiles();
-
-  PersistableBundle getAdfProvisioningAuthorities(in PersistableBundle parameters);
-
-  PersistableBundle getAdfCertificateAndInfo(in PersistableBundle parameters);
-
-  void provisionProfileAdfByScript(in PersistableBundle serviceProfileBundle,
-            in IUwbAdfProvisionStateCallbacks callback);
-
-  int removeProfileAdf(in PersistableBundle serviceProfileBundle);
-
-  int sendVendorUciMessage(int gid, int oid, in byte[] payload);
-
-  /**
-   * The maximum allowed time to open a ranging session.
-   */
-  const int RANGING_SESSION_OPEN_THRESHOLD_MS = 3000; // Value TBD
-
-  /**
-   * The maximum allowed time to start a ranging session.
-   */
-  const int RANGING_SESSION_START_THRESHOLD_MS = 3000; // Value TBD
-
-  /**
-   * The maximum allowed time to notify the framework that a session has been
-   * closed.
-   */
-  const int RANGING_SESSION_CLOSE_THRESHOLD_MS = 3000; // Value TBD
-}
diff --git a/framework/java/android/uwb/IUwbRangingCallbacks.aidl b/framework/java/android/uwb/IUwbRangingCallbacks.aidl
index 4ac67aa..a961718 100644
--- a/framework/java/android/uwb/IUwbRangingCallbacks.aidl
+++ b/framework/java/android/uwb/IUwbRangingCallbacks.aidl
@@ -20,10 +20,11 @@
 import android.uwb.RangingChangeReason;
 import android.uwb.RangingReport;
 import android.uwb.SessionHandle;
+import android.uwb.UwbAddress;
 
 /**
  * @hide
- * TODO(b/196225233): Remove this when qorvo stack is integrated.
+ * TODO(b/211025367): Remove all the duplicate javadocs here.
  */
 oneway interface IUwbRangingCallbacks {
   /**
@@ -134,4 +135,127 @@
    * @param result the ranging report
    */
   void onRangingResult(in SessionHandle sessionHandle, in RangingReport result);
+
+  /**
+   * Invoked when a new controlee is added to an ongoing one-to many session.
+   *
+   * @param sessionHandle the session the callback is being invoked for
+   * @param parameters protocol specific parameters for the new controlee.
+   */
+  void onControleeAdded(in SessionHandle sessionHandle, in PersistableBundle parameters);
+
+  /**
+   * Invoked when a new controlee is added to an ongoing one-to many session.
+   *
+   * @param sessionHandle the session the callback is being invoked for
+   * @param reason reason for the controlee add failure.
+   * @param parameters protocol specific parameters related to the failure.
+   */
+  void onControleeAddFailed(in SessionHandle sessionHandle,
+          RangingChangeReason reason, in PersistableBundle parameters);
+
+  /**
+   * Invoked when an existing controlee is removed from an ongoing one-to many session.
+   *
+   * @param sessionHandle the session the callback is being invoked for
+   * @param parameters protocol specific parameters for the existing controlee.
+   */
+  void onControleeRemoved(in SessionHandle sessionHandle, in PersistableBundle parameters);
+
+  /**
+   * Invoked when a new controlee is added to an ongoing one-to many session.
+   *
+   * @param sessionHandle the session the callback is being invoked for
+   * @param reason reason for the controlee remove failure.
+   * @param parameters protocol specific parameters related to the failure.
+   */
+  void onControleeRemoveFailed(in SessionHandle sessionHandle,
+          RangingChangeReason reason, in PersistableBundle parameters);
+
+  /**
+   * Invoked when an ongoing session is successfully suspended.
+   *
+   * @param sessionHandle the session the callback is being invoked for
+   * @param parameters protocol specific parameters sent for suspension.
+   */
+  void onRangingPaused(in SessionHandle sessionHandle, in PersistableBundle parameters);
+
+  /**
+   * Invoked when an ongoing session suspension fails.
+   *
+   * @param sessionHandle the session the callback is being invoked for
+   * @param reason reason for the suspension failure.
+   * @param parameters protocol specific parameters for suspension failure.
+   */
+  void onRangingPauseFailed(in SessionHandle sessionHandle,
+          RangingChangeReason reason, in PersistableBundle parameters);
+
+  /**
+   * Invoked when a suspended session is successfully resumed.
+   *
+   * @param parameters protocol specific parameters sent for suspension.
+   */
+  void onRangingResumed(in SessionHandle sessionHandle, in PersistableBundle parameters);
+
+  /**
+   * Invoked when a suspended session resumption fails.
+   *
+   * @param sessionHandle the session the callback is being invoked for
+   * @param reason reason for the resumption failure.
+   * @param parameters protocol specific parameters for resumption failure.
+   */
+  void onRangingResumeFailed(in SessionHandle sessionHandle,
+          RangingChangeReason reason, in PersistableBundle parameters);
+
+  /**
+   * Invoked when data is successfully sent via {@link RangingSession#sendData(UwbAddress,
+   * PersistableBundle, byte[])}.
+   *
+   * @param sessionHandle the session the callback is being invoked for
+   * @param remoteDeviceAddress remote device's address.
+   * @param parameters protocol specific parameters sent for suspension.
+   */
+  void onDataSent(in SessionHandle sessionHandle, in UwbAddress remoteDeviceAddress,
+          in PersistableBundle parameters);
+
+  /**
+   * Invoked when data send to a remote device via {@link RangingSession#sendData(UwbAddress,
+   * PersistableBundle, byte[])} fails.
+   *
+   * @param sessionHandle the session the callback is being invoked for
+   * @param remoteDeviceAddress remote device's address.
+   * @param reason reason for the resumption failure.
+   * @param parameters protocol specific parameters for resumption failure.
+   */
+  void onDataSendFailed(in SessionHandle sessionHandle, in UwbAddress remoteDeviceAddress,
+          RangingChangeReason reason, in PersistableBundle parameters);
+
+  /**
+   * Invoked when data is received successfully from a remote device.
+   * The data is received piggybacked over RRM (initiator -> responder) or
+   * RIM (responder -> initiator).
+   * <p> This is only functional on a FIRA 2.0 compliant device.
+   *
+   * @param sessionHandle the session the callback is being invoked for
+   * @param remoteDeviceAddress remote device's address.
+   * @param data Raw data received.
+   * @param parameters protocol specific parameters for the received data.
+   */
+  void onDataReceived(in SessionHandle sessionHandle, in UwbAddress remoteDeviceAddress,
+          in PersistableBundle parameters, in byte[] data);
+
+  /**
+   * Invoked when data receive from a remote device fails.
+   *
+   * @param sessionHandle the session the callback is being invoked for
+   * @param remoteDeviceAddress remote device's address.
+   * @param reason reason for the resumption failure.
+   * @param parameters protocol specific parameters for resumption failure.
+   */
+  void onDataReceiveFailed(in SessionHandle sessionHandle, in UwbAddress remoteDeviceAddress,
+          RangingChangeReason reason, in PersistableBundle parameters);
+
+  void onServiceDiscovered(in SessionHandle sessionHandle, in PersistableBundle parameters);
+
+  void onServiceConnected(in SessionHandle sessionHandle, in PersistableBundle parameters);
 }
diff --git a/framework/java/android/uwb/IUwbRangingCallbacks2.aidl b/framework/java/android/uwb/IUwbRangingCallbacks2.aidl
deleted file mode 100644
index a1b1eea..0000000
--- a/framework/java/android/uwb/IUwbRangingCallbacks2.aidl
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.uwb;
-
-import android.os.PersistableBundle;
-import android.uwb.RangingChangeReason;
-import android.uwb.RangingReport;
-import android.uwb.SessionHandle;
-import android.uwb.UwbAddress;
-
-/**
- * @hide
- * TODO(b/196225233): Rename this to IUwbRangingCallbacks when qorvo stack is integrated.
- * Temporary AIDL interface name for the interface between UwbManager & UwbService.
- * The existing IUwbAdapter interface is kept behind for providing backwards
- * compatibility with the old UWB architecture.
- */
-oneway interface IUwbRangingCallbacks2 {
-  void onRangingOpened(in SessionHandle sessionHandle);
-
-  void onRangingOpenFailed(in SessionHandle sessionHandle,
-                           RangingChangeReason reason,
-                           in PersistableBundle parameters);
-
-  void onRangingStarted(in SessionHandle sessionHandle,
-                        in PersistableBundle parameters);
-
-  void onRangingStartFailed(in SessionHandle sessionHandle,
-                            RangingChangeReason reason,
-                            in PersistableBundle parameters);
-
-  void onRangingReconfigured(in SessionHandle sessionHandle,
-                             in PersistableBundle parameters);
-
-  void onRangingReconfigureFailed(in SessionHandle sessionHandle,
-                                  RangingChangeReason reason,
-                                  in PersistableBundle parameters);
-
-  void onRangingStopped(in SessionHandle sessionHandle,
-                        RangingChangeReason reason,
-                        in PersistableBundle parameters);
-
-  void onRangingStopFailed(in SessionHandle sessionHandle,
-                           RangingChangeReason reason,
-                           in PersistableBundle parameters);
-
-  void onRangingClosed(in SessionHandle sessionHandle,
-                       RangingChangeReason reason,
-                       in PersistableBundle parameters);
-
-  void onRangingResult(in SessionHandle sessionHandle, in RangingReport result);
-
-  void onControleeAdded(in SessionHandle sessionHandle, in PersistableBundle parameters);
-
-  void onControleeAddFailed(in SessionHandle sessionHandle,
-          RangingChangeReason reason, in PersistableBundle parameters);
-
-  void onControleeRemoved(in SessionHandle sessionHandle, in PersistableBundle parameters);
-
-  void onControleeRemoveFailed(in SessionHandle sessionHandle,
-          RangingChangeReason reason, in PersistableBundle parameters);
-
-  void onRangingPaused(in SessionHandle sessionHandle, in PersistableBundle parameters);
-
-  void onRangingPauseFailed(in SessionHandle sessionHandle,
-          RangingChangeReason reason, in PersistableBundle parameters);
-
-  void onRangingResumed(in SessionHandle sessionHandle, in PersistableBundle parameters);
-
-  void onRangingResumeFailed(in SessionHandle sessionHandle,
-          RangingChangeReason reason, in PersistableBundle parameters);
-
-  void onDataSent(in SessionHandle sessionHandle, in UwbAddress remoteDeviceAddress,
-          in PersistableBundle parameters);
-
-  void onDataSendFailed(in SessionHandle sessionHandle, in UwbAddress remoteDeviceAddress,
-          RangingChangeReason reason, in PersistableBundle parameters);
-
-  void onDataReceived(in SessionHandle sessionHandle, in UwbAddress remoteDeviceAddress,
-          in PersistableBundle parameters, in byte[] data);
-
-  void onDataReceiveFailed(in SessionHandle sessionHandle, in UwbAddress remoteDeviceAddress,
-          RangingChangeReason reason, in PersistableBundle parameters);
-
-  void onServiceDiscovered(in SessionHandle sessionHandle, in PersistableBundle parameters);
-
-  void onServiceConnected(in SessionHandle sessionHandle, in PersistableBundle parameters);
-}
diff --git a/framework/java/android/uwb/RangingManager.java b/framework/java/android/uwb/RangingManager.java
index b2a699d..df3b4c2 100644
--- a/framework/java/android/uwb/RangingManager.java
+++ b/framework/java/android/uwb/RangingManager.java
@@ -31,14 +31,14 @@
 /**
  * @hide
  */
-public class RangingManager extends android.uwb.IUwbRangingCallbacks2.Stub {
+public class RangingManager extends android.uwb.IUwbRangingCallbacks.Stub {
     private static final String TAG = "Uwb.RangingManager";
 
-    private final IUwbAdapter2 mAdapter;
+    private final IUwbAdapter mAdapter;
     private final Hashtable<SessionHandle, RangingSession> mRangingSessionTable = new Hashtable<>();
     private int mNextSessionId = 1;
 
-    public RangingManager(IUwbAdapter2 adapter) {
+    public RangingManager(IUwbAdapter adapter) {
         mAdapter = adapter;
     }
 
diff --git a/framework/java/android/uwb/RangingSession.java b/framework/java/android/uwb/RangingSession.java
index 656069c..7cf007c 100644
--- a/framework/java/android/uwb/RangingSession.java
+++ b/framework/java/android/uwb/RangingSession.java
@@ -49,7 +49,7 @@
 public final class RangingSession implements AutoCloseable {
     private static final String TAG = "Uwb.RangingSession";
     private final SessionHandle mSessionHandle;
-    private final IUwbAdapter2 mAdapter;
+    private final IUwbAdapter mAdapter;
     private final Executor mExecutor;
     private final Callback mCallback;
     private final String mChipId;
@@ -422,7 +422,7 @@
     /**
      * @hide
      */
-    public RangingSession(Executor executor, Callback callback, IUwbAdapter2 adapter,
+    public RangingSession(Executor executor, Callback callback, IUwbAdapter adapter,
             SessionHandle sessionHandle) {
         this(executor, callback, adapter, sessionHandle, /* chipId= */ null);
     }
@@ -430,7 +430,7 @@
     /**
      * @hide
      */
-    public RangingSession(Executor executor, Callback callback, IUwbAdapter2 adapter,
+    public RangingSession(Executor executor, Callback callback, IUwbAdapter adapter,
             SessionHandle sessionHandle, String chipId) {
         mState = State.INIT;
         mExecutor = executor;
diff --git a/framework/java/android/uwb/UwbFrameworkInitializer.java b/framework/java/android/uwb/UwbFrameworkInitializer.java
index 09d6bc3..f498034 100644
--- a/framework/java/android/uwb/UwbFrameworkInitializer.java
+++ b/framework/java/android/uwb/UwbFrameworkInitializer.java
@@ -40,7 +40,7 @@
                 Context.UWB_SERVICE,
                 UwbManager.class,
                 (context, serviceBinder) -> {
-                    IUwbAdapter2 adapter = IUwbAdapter2.Stub.asInterface(serviceBinder);
+                    IUwbAdapter adapter = IUwbAdapter.Stub.asInterface(serviceBinder);
                     return new UwbManager(context, adapter);
                 }
         );
diff --git a/framework/java/android/uwb/UwbManager.java b/framework/java/android/uwb/UwbManager.java
index ac77dd9..fee2dbb 100644
--- a/framework/java/android/uwb/UwbManager.java
+++ b/framework/java/android/uwb/UwbManager.java
@@ -61,7 +61,7 @@
     private static final String TAG = "UwbManager";
 
     private final Context mContext;
-    private final IUwbAdapter2 mUwbAdapter;
+    private final IUwbAdapter mUwbAdapter;
     private final AdapterStateListener mAdapterStateListener;
     private final RangingManager mRangingManager;
     private final UwbVendorUciCallbackListener mUwbVendorUciCallbackListener;
@@ -317,10 +317,10 @@
      * Use <code>Context.getSystemService(UwbManager.class)</code> to get an instance.
      *
      * @param ctx Context of the client.
-     * @param adapter an instance of an {@link android.uwb.IUwbAdapter2}
+     * @param adapter an instance of an {@link android.uwb.IUwbAdapter}
      * @hide
      */
-    public UwbManager(@NonNull Context ctx, @NonNull IUwbAdapter2 adapter) {
+    public UwbManager(@NonNull Context ctx, @NonNull IUwbAdapter adapter) {
         mContext = ctx;
         mUwbAdapter = adapter;
         mAdapterStateListener = new AdapterStateListener(adapter);
diff --git a/framework/java/android/uwb/UwbVendorUciCallbackListener.java b/framework/java/android/uwb/UwbVendorUciCallbackListener.java
index f07bf67..3b1f699 100644
--- a/framework/java/android/uwb/UwbVendorUciCallbackListener.java
+++ b/framework/java/android/uwb/UwbVendorUciCallbackListener.java
@@ -30,11 +30,11 @@
  */
 public final class UwbVendorUciCallbackListener extends IUwbVendorUciCallback.Stub{
     private static final String TAG = "Uwb.UwbVendorUciCallbacks";
-    private final IUwbAdapter2 mAdapter;
+    private final IUwbAdapter mAdapter;
     private boolean mIsRegistered = false;
     private final Map<UwbVendorUciCallback, Executor> mCallbackMap = new HashMap<>();
 
-    public UwbVendorUciCallbackListener(@NonNull IUwbAdapter2 adapter) {
+    public UwbVendorUciCallbackListener(@NonNull IUwbAdapter adapter) {
         mAdapter = adapter;
     }
 
diff --git a/framework/tests/src/android/uwb/AdapterStateListenerTest.java b/framework/tests/src/android/uwb/AdapterStateListenerTest.java
index 9a7ad3c..4cad535 100644
--- a/framework/tests/src/android/uwb/AdapterStateListenerTest.java
+++ b/framework/tests/src/android/uwb/AdapterStateListenerTest.java
@@ -46,7 +46,7 @@
 @RunWith(AndroidJUnit4.class)
 public class AdapterStateListenerTest {
 
-    IUwbAdapter2 mUwbAdapter = mock(IUwbAdapter2.class);
+    IUwbAdapter mUwbAdapter = mock(IUwbAdapter.class);
 
     Answer mRegisterSuccessAnswer = new Answer() {
         public Object answer(InvocationOnMock invocation) {
diff --git a/framework/tests/src/android/uwb/RangingManagerTest.java b/framework/tests/src/android/uwb/RangingManagerTest.java
index bf63913..466f85d 100644
--- a/framework/tests/src/android/uwb/RangingManagerTest.java
+++ b/framework/tests/src/android/uwb/RangingManagerTest.java
@@ -62,7 +62,7 @@
 
     @Test
     public void testOpenSession_OpenRangingInvoked() throws RemoteException {
-        IUwbAdapter2 adapter = mock(IUwbAdapter2.class);
+        IUwbAdapter adapter = mock(IUwbAdapter.class);
         RangingManager rangingManager = new RangingManager(adapter);
         RangingSession.Callback callback = mock(RangingSession.Callback.class);
         rangingManager.openSession(
@@ -73,7 +73,7 @@
 
     @Test
     public void testOpenSession_validChipId_OpenRangingInvoked() throws RemoteException {
-        IUwbAdapter2 adapter = mock(IUwbAdapter2.class);
+        IUwbAdapter adapter = mock(IUwbAdapter.class);
         when(adapter.getChipIds()).thenReturn(List.of(VALID_CHIP_ID));
         RangingManager rangingManager = new RangingManager(adapter);
         RangingSession.Callback callback = mock(RangingSession.Callback.class);
@@ -84,7 +84,7 @@
 
     @Test
     public void testOpenSession_validChipId_RuntimeException() throws RemoteException {
-        IUwbAdapter2 adapter = mock(IUwbAdapter2.class);
+        IUwbAdapter adapter = mock(IUwbAdapter.class);
         doThrow(new RemoteException())
                 .when(adapter)
                 .openRanging(eq(ATTRIBUTION_SOURCE), any(), any(), any(), eq(VALID_CHIP_ID));
@@ -101,7 +101,7 @@
     @Test
     public void testOpenSession_invalidChipId_IllegalArgumentException() throws RemoteException {
         String invalidChipId = "invalidChipId";
-        IUwbAdapter2 adapter = mock(IUwbAdapter2.class);
+        IUwbAdapter adapter = mock(IUwbAdapter.class);
         Mockito.when(adapter.getChipIds()).thenReturn(List.of(VALID_CHIP_ID));
         RangingManager rangingManager = new RangingManager(adapter);
         RangingSession.Callback callback = mock(RangingSession.Callback.class);
@@ -116,7 +116,7 @@
 
     @Test
     public void testOnRangingOpened_InvalidSessionHandle() throws RemoteException {
-        IUwbAdapter2 adapter = mock(IUwbAdapter2.class);
+        IUwbAdapter adapter = mock(IUwbAdapter.class);
         RangingManager rangingManager = new RangingManager(adapter);
         RangingSession.Callback callback = mock(RangingSession.Callback.class);
 
@@ -126,7 +126,7 @@
 
     @Test
     public void testOnRangingOpened_MultipleSessionsRegistered() throws RemoteException {
-        IUwbAdapter2 adapter = mock(IUwbAdapter2.class);
+        IUwbAdapter adapter = mock(IUwbAdapter.class);
         RangingSession.Callback callback1 = mock(RangingSession.Callback.class);
         RangingSession.Callback callback2 = mock(RangingSession.Callback.class);
         ArgumentCaptor<SessionHandle> sessionHandleCaptor =
@@ -166,7 +166,7 @@
 
     @Test
     public void testCorrectCallbackInvoked() throws RemoteException {
-        IUwbAdapter2 adapter = mock(IUwbAdapter2.class);
+        IUwbAdapter adapter = mock(IUwbAdapter.class);
         RangingManager rangingManager = new RangingManager(adapter);
         RangingSession.Callback callback = mock(RangingSession.Callback.class);
 
@@ -257,7 +257,7 @@
 
     @Test
     public void testNoCallbackInvoked_sessionClosed() throws RemoteException {
-        IUwbAdapter2 adapter = mock(IUwbAdapter2.class);
+        IUwbAdapter adapter = mock(IUwbAdapter.class);
         RangingManager rangingManager = new RangingManager(adapter);
         RangingSession.Callback callback = mock(RangingSession.Callback.class);
 
@@ -350,7 +350,7 @@
 
     @Test
     public void testOnRangingClosed_MultipleSessionsRegistered() throws RemoteException {
-        IUwbAdapter2 adapter = mock(IUwbAdapter2.class);
+        IUwbAdapter adapter = mock(IUwbAdapter.class);
         // Verify that if multiple sessions are registered, only the session that is
         // requested to close receives the associated callbacks
         RangingSession.Callback callback1 = mock(RangingSession.Callback.class);
@@ -393,7 +393,7 @@
 
     @Test
     public void testOnRangingReport_MultipleSessionsRegistered() throws RemoteException {
-        IUwbAdapter2 adapter = mock(IUwbAdapter2.class);
+        IUwbAdapter adapter = mock(IUwbAdapter.class);
         RangingSession.Callback callback1 = mock(RangingSession.Callback.class);
         RangingSession.Callback callback2 = mock(RangingSession.Callback.class);
 
@@ -460,7 +460,7 @@
     private void runReason(
             @RangingChangeReason int reasonIn, @RangingSession.Callback.Reason int reasonOut)
             throws RemoteException {
-        IUwbAdapter2 adapter = mock(IUwbAdapter2.class);
+        IUwbAdapter adapter = mock(IUwbAdapter.class);
         RangingManager rangingManager = new RangingManager(adapter);
         RangingSession.Callback callback = mock(RangingSession.Callback.class);
 
diff --git a/framework/tests/src/android/uwb/UwbManagerTest.java b/framework/tests/src/android/uwb/UwbManagerTest.java
index 7d82233..38fccca 100644
--- a/framework/tests/src/android/uwb/UwbManagerTest.java
+++ b/framework/tests/src/android/uwb/UwbManagerTest.java
@@ -56,7 +56,7 @@
 public class UwbManagerTest {
 
     @Mock private Context mContext;
-    @Mock private IUwbAdapter2 mIUwbAdapter;
+    @Mock private IUwbAdapter mIUwbAdapter;
     @Mock private AdapterStateCallback mAdapterStateCallback;
     @Mock private AdapterStateCallback mAdapterStateCallback2;
     @Mock private UwbVendorUciCallback mUwbVendorUciCallback;
diff --git a/framework/tests/src/android/uwb/UwbVendorUciCallbackListenerTest.java b/framework/tests/src/android/uwb/UwbVendorUciCallbackListenerTest.java
index 0eb1b5d..e94f025 100644
--- a/framework/tests/src/android/uwb/UwbVendorUciCallbackListenerTest.java
+++ b/framework/tests/src/android/uwb/UwbVendorUciCallbackListenerTest.java
@@ -50,7 +50,7 @@
 @RunWith(AndroidJUnit4.class)
 public class UwbVendorUciCallbackListenerTest {
 
-    @Mock private IUwbAdapter2 mIUwbAdapter;
+    @Mock private IUwbAdapter mIUwbAdapter;
     @Mock private UwbVendorUciCallback mUwbVendorUciCallback;
     @Mock private UwbVendorUciCallback mUwbVendorUciCallback2;
 
diff --git a/service/java/com/android/server/uwb/UwbClientSessionHandle.java b/service/java/com/android/server/uwb/UwbClientSessionHandle.java
deleted file mode 100644
index 82b9852..0000000
--- a/service/java/com/android/server/uwb/UwbClientSessionHandle.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright (C) 2021 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.server.uwb;
-
-import android.annotation.NonNull;
-import android.content.AttributionSource;
-import android.uwb.SessionHandle;
-
-import java.util.Objects;
-
-/**
- * Container for storing unique session info.
- */
-public class UwbClientSessionHandle {
-    private final SessionHandle mSessionHandle;
-    private final AttributionSource mAttributionSource;
-
-
-    public UwbClientSessionHandle(@NonNull SessionHandle sessionHandle,
-            @NonNull AttributionSource attributionSource) {
-        mSessionHandle = sessionHandle;
-        mAttributionSource = attributionSource;
-    }
-
-    @Override
-    public java.lang.String toString() {
-        return "UwbClientSessionHandle{"
-                + "mSessionHandle=" + mSessionHandle
-                + ", mAttributionSource=" + mAttributionSource
-                + '}';
-    }
-
-    @Override
-    public boolean equals(Object object) {
-        if (this == object) return true;
-        if (!(object instanceof UwbClientSessionHandle)) return false;
-        UwbClientSessionHandle that = (UwbClientSessionHandle) object;
-        return Objects.equals(mSessionHandle, that.mSessionHandle)
-                && Objects.equals(mAttributionSource, that.mAttributionSource);
-    }
-
-    @Override
-    public int hashCode() {
-        return Objects.hash(mSessionHandle, mAttributionSource);
-    }
-
-    @NonNull
-    public SessionHandle getSessionHandle() {
-        return mSessionHandle;
-    }
-
-    @NonNull
-    public AttributionSource getAttributionSource() {
-        return mAttributionSource;
-    }
-}
diff --git a/service/java/com/android/server/uwb/UwbServiceCore.java b/service/java/com/android/server/uwb/UwbServiceCore.java
index 6ed6810..9c7c307 100644
--- a/service/java/com/android/server/uwb/UwbServiceCore.java
+++ b/service/java/com/android/server/uwb/UwbServiceCore.java
@@ -280,13 +280,13 @@
             FiraOpenSessionParams firaOpenSessionParams = FiraOpenSessionParams.fromBundle(
                     params);
             sessionId = firaOpenSessionParams.getSessionId();
-            mSessionManager.initSession(sessionHandle, sessionId,
+            mSessionManager.initSession(attributionSource, sessionHandle, sessionId,
                     firaOpenSessionParams.getProtocolName(),
                     firaOpenSessionParams, rangingCallbacks);
         } else if (CccParams.isCorrectProtocol(params)) {
             CccOpenRangingParams cccOpenRangingParams = CccOpenRangingParams.fromBundle(params);
             sessionId = cccOpenRangingParams.getSessionId();
-            mSessionManager.initSession(sessionHandle, sessionId,
+            mSessionManager.initSession(attributionSource, sessionHandle, sessionId,
                     cccOpenRangingParams.getProtocolName(),
                     cccOpenRangingParams, rangingCallbacks);
         } else {
diff --git a/service/java/com/android/server/uwb/UwbServiceImpl.java b/service/java/com/android/server/uwb/UwbServiceImpl.java
index b668666..2e13460 100644
--- a/service/java/com/android/server/uwb/UwbServiceImpl.java
+++ b/service/java/com/android/server/uwb/UwbServiceImpl.java
@@ -25,195 +25,37 @@
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.os.Binder;
-import android.os.IBinder;
 import android.os.ParcelFileDescriptor;
 import android.os.PersistableBundle;
 import android.os.RemoteException;
 import android.provider.Settings;
-import android.util.ArrayMap;
 import android.util.Log;
-import android.uwb.IUwbAdapter2;
+import android.uwb.IUwbAdapter;
 import android.uwb.IUwbAdapterStateCallbacks;
 import android.uwb.IUwbAdfProvisionStateCallbacks;
 import android.uwb.IUwbRangingCallbacks;
-import android.uwb.IUwbRangingCallbacks2;
 import android.uwb.IUwbVendorUciCallback;
-import android.uwb.RangingReport;
 import android.uwb.SessionHandle;
 import android.uwb.UwbAddress;
 
-import com.android.internal.annotations.GuardedBy;
-
 import com.google.uwb.support.multichip.ChipInfoParams;
 
 import java.io.FileDescriptor;
 import java.io.PrintWriter;
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Map;
 
 /**
- * Implementation of {@link android.uwb.IUwbAdapter2} binder service.
+ * Implementation of {@link android.uwb.IUwbAdapter} binder service.
  */
-public class UwbServiceImpl extends IUwbAdapter2.Stub {
+public class UwbServiceImpl extends IUwbAdapter.Stub {
     private static final String TAG = "UwbServiceImpl";
 
     private final Context mContext;
     private final UwbInjector mUwbInjector;
     private final UwbSettingsStore mUwbSettingsStore;
-
-    /**
-     * Map for storing the callbacks wrapper for each session.
-     */
-    @GuardedBy("mCallbacksMap")
-    private final Map<UwbClientSessionHandle, UwbRangingCallbacksWrapper> mCallbacksMap =
-            new ArrayMap<>();
-
     private final UwbServiceCore mUwbServiceCore;
 
-    /**
-     * Wrapper for callback registered with vendor service. This wrapper is needed for performing
-     * permission check before sending the callback to the external app.
-     *
-     * Access to these callbacks are synchronized.
-     */
-    private class UwbRangingCallbacksWrapper extends IUwbRangingCallbacks.Stub
-            implements IBinder.DeathRecipient {
-        private final UwbClientSessionHandle mUwbClientSessionHandle;
-        private final IUwbRangingCallbacks2 mExternalCb;
-        private boolean mIsValid;
-
-        UwbRangingCallbacksWrapper(@NonNull UwbClientSessionHandle uwbSessionInfo,
-                @NonNull IUwbRangingCallbacks2 externalCb) {
-            mUwbClientSessionHandle = uwbSessionInfo;
-            mExternalCb = externalCb;
-            mIsValid = true;
-
-            // Link to death for external callback.
-            linkToDeath();
-        }
-
-        private void linkToDeath() {
-            IBinder binder = mExternalCb.asBinder();
-            try {
-                binder.linkToDeath(this, 0);
-            } catch (RemoteException e) {
-                Log.e(TAG, "Unable to link to client death event.", e);
-            }
-        }
-
-        private void removeClientAndUnlinkToDeath() {
-            // Remove from the map.
-            synchronized (mCallbacksMap) {
-                mCallbacksMap.remove(mUwbClientSessionHandle);
-            }
-            IBinder binder = mExternalCb.asBinder();
-            binder.unlinkToDeath(this, 0);
-            mIsValid = false;
-        }
-
-
-        @Override
-        public synchronized void onRangingOpened(SessionHandle sessionHandle)
-                throws RemoteException {
-            if (!mIsValid) return;
-            mExternalCb.onRangingOpened(sessionHandle);
-        }
-
-        @Override
-        public synchronized void onRangingOpenFailed(SessionHandle sessionHandle,
-                int reason, PersistableBundle parameters) throws RemoteException {
-            if (!mIsValid) return;
-            mExternalCb.onRangingOpenFailed(sessionHandle, reason, parameters);
-        }
-
-        @Override
-        public synchronized void onRangingStarted(SessionHandle sessionHandle,
-                PersistableBundle parameters)
-                throws RemoteException {
-            if (!mIsValid) return;
-            mExternalCb.onRangingStarted(sessionHandle, parameters);
-        }
-
-        @Override
-        public synchronized void onRangingStartFailed(SessionHandle sessionHandle,
-                int reason, PersistableBundle parameters) throws RemoteException {
-            if (!mIsValid) return;
-            mExternalCb.onRangingStartFailed(sessionHandle, reason, parameters);
-        }
-
-        @Override
-        public synchronized void onRangingReconfigured(SessionHandle sessionHandle,
-                PersistableBundle parameters)
-                throws RemoteException {
-            if (!mIsValid) return;
-            mExternalCb.onRangingReconfigured(sessionHandle, parameters);
-        }
-
-        @Override
-        public synchronized void onRangingReconfigureFailed(SessionHandle sessionHandle,
-                int reason, PersistableBundle parameters) throws RemoteException {
-            if (!mIsValid) return;
-            mExternalCb.onRangingReconfigureFailed(sessionHandle, reason, parameters);
-        }
-
-        @Override
-        public synchronized void onRangingStopped(SessionHandle sessionHandle, int reason,
-                PersistableBundle parameters)
-                throws RemoteException {
-            if (!mIsValid) return;
-            mExternalCb.onRangingStopped(sessionHandle, reason, parameters);
-        }
-
-        @Override
-        public synchronized void onRangingStopFailed(SessionHandle sessionHandle, int reason,
-                PersistableBundle parameters) throws RemoteException {
-            if (!mIsValid) return;
-            mExternalCb.onRangingStopFailed(sessionHandle, reason, parameters);
-        }
-
-        @Override
-        public synchronized void onRangingClosed(SessionHandle sessionHandle, int reason,
-                PersistableBundle parameters) throws RemoteException {
-            if (!mIsValid) return;
-            mExternalCb.onRangingClosed(sessionHandle, reason, parameters);
-            removeClientAndUnlinkToDeath();
-        }
-
-        @Override
-        public synchronized void onRangingResult(SessionHandle sessionHandle,
-                RangingReport rangingReport)
-                throws RemoteException {
-            if (!mIsValid) return;
-            final long ident = Binder.clearCallingIdentity();
-            try {
-                boolean permissionGranted = mUwbInjector.checkUwbRangingPermissionForDataDelivery(
-                        mUwbClientSessionHandle.getAttributionSource(), "uwb ranging result");
-                if (!permissionGranted) {
-                    Log.e(TAG, "Not delivering ranging result because of permission denial"
-                            + mUwbClientSessionHandle.getSessionHandle());
-                    return;
-                }
-            } finally {
-                Binder.restoreCallingIdentity(ident);
-            }
-            mExternalCb.onRangingResult(sessionHandle, rangingReport);
-        }
-
-        @Override
-        public synchronized void binderDied() {
-            if (!mIsValid) return;
-            Log.i(TAG, "Client died: ending session: "
-                    + mUwbClientSessionHandle.getSessionHandle());
-            try {
-                removeClientAndUnlinkToDeath();
-                stopRanging(mUwbClientSessionHandle.getSessionHandle());
-                closeRanging(mUwbClientSessionHandle.getSessionHandle());
-            } catch (RemoteException e) {
-                Log.e(TAG, "Remote exception while handling client death", e);
-            }
-        }
-    }
 
     UwbServiceImpl(@NonNull Context context, @NonNull UwbInjector uwbInjector) {
         mContext = context;
@@ -305,22 +147,13 @@
     @Override
     public void openRanging(AttributionSource attributionSource,
             SessionHandle sessionHandle,
-            IUwbRangingCallbacks2 rangingCallbacks,
+            IUwbRangingCallbacks rangingCallbacks,
             PersistableBundle parameters,
             String chipId) throws RemoteException {
 
         enforceUwbPrivilegedPermission();
         mUwbInjector.enforceUwbRangingPermissionForPreflight(attributionSource);
-
-        final UwbClientSessionHandle uwbSessionInfo =
-                new UwbClientSessionHandle(sessionHandle, attributionSource);
-        UwbRangingCallbacksWrapper wrapperCb =
-                new UwbRangingCallbacksWrapper(uwbSessionInfo, rangingCallbacks);
-        synchronized (mCallbacksMap) {
-            mCallbacksMap.put(uwbSessionInfo, wrapperCb);
-        }
-        mUwbServiceCore
-                .openRanging(attributionSource, sessionHandle, wrapperCb, parameters);
+        mUwbServiceCore.openRanging(attributionSource, sessionHandle, rangingCallbacks, parameters);
     }
 
     @Override
diff --git a/service/java/com/android/server/uwb/UwbSessionManager.java b/service/java/com/android/server/uwb/UwbSessionManager.java
index 799cb51..c621e28 100644
--- a/service/java/com/android/server/uwb/UwbSessionManager.java
+++ b/service/java/com/android/server/uwb/UwbSessionManager.java
@@ -18,6 +18,7 @@
 import static com.android.server.uwb.data.UwbUciConstants.REASON_STATE_CHANGE_WITH_SESSION_MANAGEMENT_COMMANDS;
 
 import android.annotation.Nullable;
+import android.content.AttributionSource;
 import android.os.Handler;
 import android.os.IBinder;
 import android.os.Looper;
@@ -26,7 +27,7 @@
 import android.os.RemoteException;
 import android.util.Log;
 import android.util.Pair;
-import android.uwb.IUwbAdapter2;
+import android.uwb.IUwbAdapter;
 import android.uwb.IUwbRangingCallbacks;
 import android.uwb.RangingChangeReason;
 import android.uwb.SessionHandle;
@@ -174,12 +175,13 @@
                 uwbSession.getParams());
     }
 
-    public synchronized void initSession(SessionHandle sessionHandle, int sessionId,
+    public synchronized void initSession(AttributionSource attributionSource,
+            SessionHandle sessionHandle, int sessionId,
             String protocolName, Params params, IUwbRangingCallbacks rangingCallbacks)
             throws RemoteException {
         Log.i(TAG, "initSession() : Enter - sessionId : " + sessionId);
-        UwbSession uwbSession =  createUwbSession(sessionHandle, sessionId, protocolName, params,
-                rangingCallbacks);
+        UwbSession uwbSession =  createUwbSession(attributionSource, sessionHandle, sessionId,
+                protocolName, params, rangingCallbacks);
         if (isExistedSession(sessionId)) {
             Log.i(TAG, "Duplicated sessionId");
             rangingCallbacks.onRangingOpenFailed(sessionHandle, RangingChangeReason.UNKNOWN,
@@ -224,9 +226,11 @@
 
     // TODO: use UwbInjector.
     @VisibleForTesting
-    UwbSession createUwbSession(SessionHandle sessionHandle, int sessionId, String protocolName,
-            Params params, IUwbRangingCallbacks iUwbRangingCallbacks) {
-        return new UwbSession(sessionHandle, sessionId, protocolName, params, iUwbRangingCallbacks);
+    UwbSession createUwbSession(AttributionSource attributionSource, SessionHandle sessionHandle,
+            int sessionId, String protocolName, Params params,
+            IUwbRangingCallbacks iUwbRangingCallbacks) {
+        return new UwbSession(attributionSource, sessionHandle, sessionId, protocolName, params,
+                iUwbRangingCallbacks);
     }
 
     public synchronized void deInitSession(SessionHandle sessionHandle) {
@@ -511,7 +515,7 @@
             int status = UwbUciConstants.STATUS_CODE_FAILED;
             try {
                 status = initSessionTask.get(
-                        IUwbAdapter2.RANGING_SESSION_OPEN_THRESHOLD_MS, TimeUnit.MILLISECONDS);
+                        IUwbAdapter.RANGING_SESSION_OPEN_THRESHOLD_MS, TimeUnit.MILLISECONDS);
             } catch (TimeoutException e) {
                 executor.shutdownNow();
                 Log.i(TAG, "Failed to initialize session - status : TIMEOUT");
@@ -591,7 +595,7 @@
             int status = UwbUciConstants.STATUS_CODE_FAILED;
             try {
                 status = startRangingTask.get(
-                        IUwbAdapter2.RANGING_SESSION_START_THRESHOLD_MS, TimeUnit.MILLISECONDS);
+                        IUwbAdapter.RANGING_SESSION_START_THRESHOLD_MS, TimeUnit.MILLISECONDS);
             } catch (TimeoutException e) {
                 Log.i(TAG, "Failed to Start Ranging - status : TIMEOUT");
                 executor.shutdownNow();
@@ -635,7 +639,7 @@
             int status = UwbUciConstants.STATUS_CODE_FAILED;
             try {
                 status = stopRangingTask.get(
-                        IUwbAdapter2.RANGING_SESSION_START_THRESHOLD_MS, TimeUnit.MILLISECONDS);
+                        IUwbAdapter.RANGING_SESSION_START_THRESHOLD_MS, TimeUnit.MILLISECONDS);
             } catch (TimeoutException e) {
                 Log.i(TAG, "Failed to Stop Ranging - status : TIMEOUT");
                 executor.shutdownNow();
@@ -728,7 +732,7 @@
             int status = UwbUciConstants.STATUS_CODE_FAILED;
             try {
                 status = cmdTask.get(
-                        IUwbAdapter2.RANGING_SESSION_OPEN_THRESHOLD_MS, TimeUnit.MILLISECONDS);
+                        IUwbAdapter.RANGING_SESSION_OPEN_THRESHOLD_MS, TimeUnit.MILLISECONDS);
             } catch (TimeoutException e) {
                 Log.i(TAG, "Failed to Reconfigure - status : TIMEOUT");
                 executor.shutdownNow();
@@ -766,7 +770,7 @@
             int status = UwbUciConstants.STATUS_CODE_FAILED;
             try {
                 status = closeTask.get(
-                        IUwbAdapter2.RANGING_SESSION_CLOSE_THRESHOLD_MS, TimeUnit.MILLISECONDS);
+                        IUwbAdapter.RANGING_SESSION_CLOSE_THRESHOLD_MS, TimeUnit.MILLISECONDS);
             } catch (TimeoutException e) {
                 Log.i(TAG, "Failed to Stop Ranging - status : TIMEOUT");
                 executor.shutdownNow();
@@ -783,6 +787,7 @@
     }
 
     public class UwbSession implements IBinder.DeathRecipient {
+        private final AttributionSource mAttributionSource;
         private final SessionHandle mSessionHandle;
         private final int mSessionId;
         private final IUwbRangingCallbacks mIUwbRangingCallbacks;
@@ -795,8 +800,9 @@
         private UwbMulticastListUpdateStatus mMulticastListUpdateStatus;
         private final int mProfileType;
 
-        UwbSession(SessionHandle sessionHandle, int sessionId, String protocolName,
-                Params params, IUwbRangingCallbacks iUwbRangingCallbacks) {
+        UwbSession(AttributionSource attributionSource, SessionHandle sessionHandle, int sessionId,
+                String protocolName, Params params, IUwbRangingCallbacks iUwbRangingCallbacks) {
+            this.mAttributionSource = attributionSource;
             this.mSessionHandle = sessionHandle;
             this.mSessionId = sessionId;
             this.mProtocolName = protocolName;
@@ -809,6 +815,10 @@
             this.mProfileType = convertProtolNameToProfileType(protocolName);
         }
 
+        public AttributionSource getAttributionSource() {
+            return this.mAttributionSource;
+        }
+
         public int getSessionId() {
             return this.mSessionId;
         }
@@ -895,6 +905,7 @@
 
             synchronized (UwbSessionManager.this) {
                 int status = mNativeUwbManager.deInitSession(getSessionId());
+                mUwbMetrics.logRangingCloseEvent(this, status);
                 if (status == UwbUciConstants.STATUS_CODE_OK) {
                     removeSession(this);
                     Log.i(TAG, "binderDied : Session count currently is " + getSessionCount());
diff --git a/service/java/com/android/server/uwb/UwbSessionNotificationManager.java b/service/java/com/android/server/uwb/UwbSessionNotificationManager.java
index bc2fa4b..35547a4 100644
--- a/service/java/com/android/server/uwb/UwbSessionNotificationManager.java
+++ b/service/java/com/android/server/uwb/UwbSessionNotificationManager.java
@@ -55,6 +55,13 @@
     public void onRangingResult(UwbSession uwbSession, UwbRangingData rangingData) {
         SessionHandle sessionHandle = uwbSession.getSessionHandle();
         IUwbRangingCallbacks uwbRangingCallbacks = uwbSession.getIUwbRangingCallbacks();
+        boolean permissionGranted = mUwbInjector.checkUwbRangingPermissionForDataDelivery(
+                uwbSession.getAttributionSource(), "uwb ranging result");
+        if (!permissionGranted) {
+            Log.e(TAG, "Not delivering ranging result because of permission denial"
+                    + sessionHandle);
+            return;
+        }
         try {
             uwbRangingCallbacks.onRangingResult(
                     sessionHandle,
diff --git a/service/java/com/android/server/uwb/UwbShellCommand.java b/service/java/com/android/server/uwb/UwbShellCommand.java
index 6ecd569..3124d57 100644
--- a/service/java/com/android/server/uwb/UwbShellCommand.java
+++ b/service/java/com/android/server/uwb/UwbShellCommand.java
@@ -56,7 +56,7 @@
 import android.os.RemoteException;
 import android.util.ArrayMap;
 import android.util.Pair;
-import android.uwb.IUwbRangingCallbacks2;
+import android.uwb.IUwbRangingCallbacks;
 import android.uwb.RangingReport;
 import android.uwb.SessionHandle;
 import android.uwb.UwbAddress;
@@ -183,7 +183,7 @@
         }
     }
 
-    private static final class UwbRangingCallbacks extends IUwbRangingCallbacks2.Stub {
+    private static final class UwbRangingCallbacks extends IUwbRangingCallbacks.Stub {
         private final SessionInfo mSessionInfo;
         private final PrintWriter mPw;
         private final CompletableFuture mRangingOpenedFuture;
diff --git a/service/tests/src/com/android/server/uwb/UwbServiceCoreTest.java b/service/tests/src/com/android/server/uwb/UwbServiceCoreTest.java
index 8753348..e259305 100644
--- a/service/tests/src/com/android/server/uwb/UwbServiceCoreTest.java
+++ b/service/tests/src/com/android/server/uwb/UwbServiceCoreTest.java
@@ -323,12 +323,13 @@
 
         SessionHandle sessionHandle = mock(SessionHandle.class);
         IUwbRangingCallbacks cb = mock(IUwbRangingCallbacks.class);
+        AttributionSource attributionSource = mock(AttributionSource.class);
         FiraOpenSessionParams params = TEST_FIRA_OPEN_SESSION_PARAMS.build();
         mUwbServiceCore.openRanging(
-                mock(AttributionSource.class), sessionHandle, cb,
-                params.toBundle());
+                attributionSource, sessionHandle, cb, params.toBundle());
 
         verify(mUwbSessionManager).initSession(
+                eq(attributionSource),
                 eq(sessionHandle), eq(params.getSessionId()), eq(FiraParams.PROTOCOL_NAME),
                 argThat(p -> ((FiraOpenSessionParams) p).getSessionId() == params.getSessionId()),
                 eq(cb));
@@ -342,11 +343,12 @@
         SessionHandle sessionHandle = mock(SessionHandle.class);
         IUwbRangingCallbacks cb = mock(IUwbRangingCallbacks.class);
         CccOpenRangingParams params = TEST_CCC_OPEN_RANGING_PARAMS.build();
+        AttributionSource attributionSource = mock(AttributionSource.class);
         mUwbServiceCore.openRanging(
-                mock(AttributionSource.class), sessionHandle, cb,
-                params.toBundle());
+                attributionSource, sessionHandle, cb, params.toBundle());
 
         verify(mUwbSessionManager).initSession(
+                eq(attributionSource),
                 eq(sessionHandle), eq(params.getSessionId()), eq(CccParams.PROTOCOL_NAME),
                 argThat(p -> ((CccOpenRangingParams) p).getSessionId() == params.getSessionId()),
                 eq(cb));
diff --git a/service/tests/src/com/android/server/uwb/UwbServiceImplTest.java b/service/tests/src/com/android/server/uwb/UwbServiceImplTest.java
index 62b25de..1d0e412 100644
--- a/service/tests/src/com/android/server/uwb/UwbServiceImplTest.java
+++ b/service/tests/src/com/android/server/uwb/UwbServiceImplTest.java
@@ -28,17 +28,12 @@
 import static org.junit.Assert.assertThrows;
 import static org.junit.Assert.fail;
 import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.argThat;
 import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.clearInvocations;
 import static org.mockito.Mockito.doThrow;
 import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyNoMoreInteractions;
-import static org.mockito.Mockito.verifyZeroInteractions;
 import static org.mockito.Mockito.when;
 
 import android.content.AttributionSource;
@@ -53,10 +48,7 @@
 import android.uwb.IUwbAdapterStateCallbacks;
 import android.uwb.IUwbAdfProvisionStateCallbacks;
 import android.uwb.IUwbRangingCallbacks;
-import android.uwb.IUwbRangingCallbacks2;
 import android.uwb.IUwbVendorUciCallback;
-import android.uwb.RangingReport;
-import android.uwb.RangingSession;
 import android.uwb.SessionHandle;
 import android.uwb.UwbAddress;
 
@@ -85,18 +77,14 @@
 @Presubmit
 public class UwbServiceImplTest {
     private static final int UID = 343453;
-    private static final int UID_2 = 343453;
     private static final String PACKAGE_NAME = "com.uwb.test";
     private static final String DEFAULT_CHIP_ID = "defaultChipId";
     private static final ChipInfoParams DEFAULT_CHIP_INFO_PARAMS =
             ChipInfoParams.createBuilder().setChipId(DEFAULT_CHIP_ID).build();
     private static final AttributionSource ATTRIBUTION_SOURCE =
             new AttributionSource.Builder(UID).setPackageName(PACKAGE_NAME).build();
-    private static final AttributionSource ATTRIBUTION_SOURCE_2 =
-            new AttributionSource.Builder(UID_2).setPackageName(PACKAGE_NAME).build();
 
     @Mock private UwbServiceCore mUwbServiceCore;
-    @Mock private IBinder mUwbServiceCoreBinder;
     @Mock private Context mContext;
     @Mock private UwbInjector mUwbInjector;
     @Mock private UwbSettingsStore mUwbSettingsStore;
@@ -113,7 +101,6 @@
     @Before
     public void setUp() throws Exception {
         MockitoAnnotations.initMocks(this);
-        when(mUwbInjector.checkUwbRangingPermissionForDataDelivery(any(), any())).thenReturn(true);
         when(mUwbInjector.getUwbSettingsStore()).thenReturn(mUwbSettingsStore);
         when(mUwbSettingsStore.get(SETTINGS_TOGGLE_STATE)).thenReturn(true);
         when(mUwbMultichipData.getChipInfos()).thenReturn(List.of(DEFAULT_CHIP_INFO_PARAMS));
@@ -201,7 +188,7 @@
     @Test
     public void testOpenRanging() throws Exception {
         final SessionHandle sessionHandle = new SessionHandle(5);
-        final IUwbRangingCallbacks2 cb = mock(IUwbRangingCallbacks2.class);
+        final IUwbRangingCallbacks cb = mock(IUwbRangingCallbacks.class);
         final PersistableBundle parameters = new PersistableBundle();
         final IBinder cbBinder = mock(IBinder.class);
         when(cb.asBinder()).thenReturn(cbBinder);
@@ -255,145 +242,6 @@
     }
 
     @Test
-    public void testRangingCallbacks() throws Exception {
-        final SessionHandle sessionHandle = new SessionHandle(5);
-        final IUwbRangingCallbacks2 cb = mock(IUwbRangingCallbacks2.class);
-        final PersistableBundle parameters = new PersistableBundle();
-        final IBinder cbBinder = mock(IBinder.class);
-        when(cb.asBinder()).thenReturn(cbBinder);
-
-        mUwbServiceImpl.openRanging(
-                ATTRIBUTION_SOURCE, sessionHandle, cb, parameters, /* chipId= */ null);
-
-        verify(mUwbServiceCore).openRanging(
-                eq(ATTRIBUTION_SOURCE), eq(sessionHandle), mRangingCbCaptor.capture(),
-                eq(parameters));
-        assertThat(mRangingCbCaptor.getValue()).isNotNull();
-
-        // Invoke vendor service callbacks and ensure that the corresponding app callback is
-        // invoked.
-        mRangingCbCaptor.getValue().onRangingOpened(sessionHandle);
-        verify(cb).onRangingOpened(sessionHandle);
-
-        mRangingCbCaptor.getValue().onRangingOpenFailed(
-                sessionHandle, RangingSession.Callback.REASON_GENERIC_ERROR, parameters);
-        verify(cb).onRangingOpenFailed(
-                sessionHandle, RangingSession.Callback.REASON_GENERIC_ERROR, parameters);
-
-        mRangingCbCaptor.getValue().onRangingStarted(sessionHandle, parameters);
-        verify(cb).onRangingStarted(sessionHandle, parameters);
-
-        mRangingCbCaptor.getValue().onRangingStartFailed(
-                sessionHandle, RangingSession.Callback.REASON_GENERIC_ERROR, parameters);
-        verify(cb).onRangingStartFailed(
-                sessionHandle, RangingSession.Callback.REASON_GENERIC_ERROR, parameters);
-
-        mRangingCbCaptor.getValue().onRangingReconfigured(sessionHandle, parameters);
-        verify(cb).onRangingReconfigured(sessionHandle, parameters);
-
-        mRangingCbCaptor.getValue().onRangingReconfigureFailed(
-                sessionHandle, RangingSession.Callback.REASON_GENERIC_ERROR, parameters);
-        verify(cb).onRangingReconfigureFailed(
-                sessionHandle, RangingSession.Callback.REASON_GENERIC_ERROR, parameters);
-
-        mRangingCbCaptor.getValue().onRangingStopped(
-                sessionHandle, RangingSession.Callback.REASON_GENERIC_ERROR, parameters);
-        verify(cb).onRangingStopped(
-                sessionHandle, RangingSession.Callback.REASON_GENERIC_ERROR, parameters);
-
-        mRangingCbCaptor.getValue().onRangingStopFailed(
-                sessionHandle, RangingSession.Callback.REASON_GENERIC_ERROR, parameters);
-        verify(cb).onRangingStopFailed(
-                sessionHandle, RangingSession.Callback.REASON_GENERIC_ERROR, parameters);
-
-        final RangingReport rangingReport = new RangingReport.Builder().build();
-        mRangingCbCaptor.getValue().onRangingResult(sessionHandle, rangingReport);
-        verify(cb).onRangingResult(sessionHandle, rangingReport);
-
-        mRangingCbCaptor.getValue().onRangingClosed(
-                sessionHandle, RangingSession.Callback.REASON_GENERIC_ERROR, parameters);
-        verify(cb).onRangingClosed(
-                sessionHandle, RangingSession.Callback.REASON_GENERIC_ERROR, parameters);
-    }
-
-    @Test
-    public void testRangingCallbacksFromDifferentUidWithSameSessionHandle() throws Exception {
-        final SessionHandle sessionHandle = new SessionHandle(5);
-        final IUwbRangingCallbacks2 cb1 = mock(IUwbRangingCallbacks2.class);
-        final IUwbRangingCallbacks2 cb2 = mock(IUwbRangingCallbacks2.class);
-        final PersistableBundle parameters = new PersistableBundle();
-        final IBinder cbBinder1 = mock(IBinder.class);
-        final IBinder cbBinder2 = mock(IBinder.class);
-        when(cb1.asBinder()).thenReturn(cbBinder1);
-        when(cb2.asBinder()).thenReturn(cbBinder2);
-
-        mUwbServiceImpl.openRanging(
-                ATTRIBUTION_SOURCE, sessionHandle, cb1, parameters, /* chipId= */ null);
-
-        verify(mUwbServiceCore).openRanging(
-                eq(ATTRIBUTION_SOURCE), eq(sessionHandle), mRangingCbCaptor.capture(),
-                eq(parameters));
-        assertThat(mRangingCbCaptor.getValue()).isNotNull();
-        verify(cb1).asBinder();
-        verify(cbBinder1).linkToDeath(any(), anyInt());
-
-        mUwbServiceImpl.openRanging(
-                ATTRIBUTION_SOURCE_2, sessionHandle, cb2, parameters, /* chipId= */ null);
-
-        verify(mUwbServiceCore, times(2)).openRanging(
-                eq(ATTRIBUTION_SOURCE_2), eq(sessionHandle), mRangingCbCaptor2.capture(),
-                eq(parameters));
-        assertThat(mRangingCbCaptor2.getValue()).isNotNull();
-        verify(cb2).asBinder();
-        verify(cbBinder2).linkToDeath(any(), anyInt());
-
-        // Invoke vendor service callbacks and ensure that the corresponding app callback is
-        // invoked.
-        mRangingCbCaptor.getValue().onRangingOpened(sessionHandle);
-        verify(cb1).onRangingOpened(sessionHandle);
-        verifyZeroInteractions(cb2);
-
-        mRangingCbCaptor2.getValue().onRangingOpened(sessionHandle);
-        verify(cb2).onRangingOpened(sessionHandle);
-        verifyNoMoreInteractions(cb1);
-    }
-
-    @Test
-    public void testHandleClientDeath() throws Exception {
-        final SessionHandle sessionHandle = new SessionHandle(5);
-        final IUwbRangingCallbacks2 cb = mock(IUwbRangingCallbacks2.class);
-        final PersistableBundle parameters = new PersistableBundle();
-        final IBinder cbBinder = mock(IBinder.class);
-        when(cb.asBinder()).thenReturn(cbBinder);
-
-        mUwbServiceImpl.openRanging(
-                ATTRIBUTION_SOURCE, sessionHandle, cb, parameters, /* chipId= */ null);
-
-        verify(mUwbServiceCore).openRanging(
-                eq(ATTRIBUTION_SOURCE), eq(sessionHandle), mRangingCbCaptor.capture(),
-                eq(parameters));
-        assertThat(mRangingCbCaptor.getValue()).isNotNull();
-
-        verify(cbBinder).linkToDeath(mClientDeathCaptor.capture(), anyInt());
-        assertThat(mClientDeathCaptor.getValue()).isNotNull();
-
-        clearInvocations(cb);
-
-        // Invoke cb, ensure it reaches the client.
-        mRangingCbCaptor.getValue().onRangingOpened(sessionHandle);
-        verify(cb).onRangingOpened(sessionHandle);
-
-        // Trigger client death and ensure the session is stopped.
-        mClientDeathCaptor.getValue().binderDied();
-        verify(mUwbServiceCore).stopRanging(sessionHandle);
-        verify(mUwbServiceCore).closeRanging(sessionHandle);
-
-        // Invoke cb, it should be ignored.
-        mRangingCbCaptor.getValue().onRangingStarted(sessionHandle, parameters);
-        verify(cb, never()).onRangingStarted(any(), any());
-    }
-
-    @Test
     public void testThrowSecurityExceptionWhenCalledWithoutUwbPrivilegedPermission()
             throws Exception {
         doThrow(new SecurityException()).when(mContext).enforceCallingOrSelfPermission(
@@ -423,7 +271,7 @@
                 any());
 
         final SessionHandle sessionHandle = new SessionHandle(5);
-        final IUwbRangingCallbacks2 cb = mock(IUwbRangingCallbacks2.class);
+        final IUwbRangingCallbacks cb = mock(IUwbRangingCallbacks.class);
         final PersistableBundle parameters = new PersistableBundle();
         final IBinder cbBinder = mock(IBinder.class);
         when(cb.asBinder()).thenReturn(cbBinder);
@@ -435,30 +283,6 @@
     }
 
     @Test
-    public void testOnRangingResultCallbackNotSentWithoutUwbRangingPermission() throws Exception {
-        final SessionHandle sessionHandle = new SessionHandle(5);
-        final IUwbRangingCallbacks2 cb = mock(IUwbRangingCallbacks2.class);
-        final PersistableBundle parameters = new PersistableBundle();
-        final IBinder cbBinder = mock(IBinder.class);
-        when(cb.asBinder()).thenReturn(cbBinder);
-
-        mUwbServiceImpl.openRanging(
-                ATTRIBUTION_SOURCE, sessionHandle, cb, parameters, /* chipId= */ null);
-
-        verify(mUwbServiceCore).openRanging(
-                eq(ATTRIBUTION_SOURCE), eq(sessionHandle), mRangingCbCaptor.capture(),
-                eq(parameters));
-        assertThat(mRangingCbCaptor.getValue()).isNotNull();
-
-        when(mUwbInjector.checkUwbRangingPermissionForDataDelivery(any(), any())).thenReturn(false);
-
-        // Ensure the ranging cb is not delivered to the client.
-        final RangingReport rangingReport = new RangingReport.Builder().build();
-        mRangingCbCaptor.getValue().onRangingResult(sessionHandle, rangingReport);
-        verify(cb, never()).onRangingResult(sessionHandle, rangingReport);
-    }
-
-    @Test
     public void testToggleStatePersistenceToSharedPrefs() throws Exception {
         mUwbServiceImpl.setEnabled(true);
         verify(mUwbSettingsStore).put(SETTINGS_TOGGLE_STATE, true);
diff --git a/service/tests/src/com/android/server/uwb/UwbSessionManagerTest.java b/service/tests/src/com/android/server/uwb/UwbSessionManagerTest.java
index a16a28b..3bbad4d 100644
--- a/service/tests/src/com/android/server/uwb/UwbSessionManagerTest.java
+++ b/service/tests/src/com/android/server/uwb/UwbSessionManagerTest.java
@@ -34,6 +34,7 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.content.AttributionSource;
 import android.os.IBinder;
 import android.os.PersistableBundle;
 import android.os.RemoteException;
@@ -79,6 +80,10 @@
 public class UwbSessionManagerTest {
     private static final int TEST_SESSION_ID = 100;
     private static final int MAX_SESSION_NUM = 8;
+    private static final int UID = 343453;
+    private static final String PACKAGE_NAME = "com.uwb.test";
+    private static final AttributionSource ATTRIBUTION_SOURCE =
+            new AttributionSource.Builder(UID).setPackageName(PACKAGE_NAME).build();
 
     @Mock
     private UwbConfigurationManager mUwbConfigurationManager;
@@ -205,8 +210,8 @@
         IUwbRangingCallbacks mockRangingCallbacks = mock(IUwbRangingCallbacks.class);
         doReturn(true).when(mUwbSessionManager).isExistedSession(anyInt());
 
-        mUwbSessionManager.initSession(mock(SessionHandle.class), TEST_SESSION_ID, "any",
-                mock(Params.class), mockRangingCallbacks);
+        mUwbSessionManager.initSession(ATTRIBUTION_SOURCE, mock(SessionHandle.class),
+                TEST_SESSION_ID, "any", mock(Params.class), mockRangingCallbacks);
 
         verify(mockRangingCallbacks).onRangingOpenFailed(any(), anyInt(), any());
         assertThat(mTestLooper.nextMessage()).isNull();
@@ -218,8 +223,8 @@
         doReturn(false).when(mUwbSessionManager).isExistedSession(anyInt());
         IUwbRangingCallbacks mockRangingCallbacks = mock(IUwbRangingCallbacks.class);
 
-        mUwbSessionManager.initSession(mock(SessionHandle.class), TEST_SESSION_ID, "any",
-                mock(Params.class), mockRangingCallbacks);
+        mUwbSessionManager.initSession(ATTRIBUTION_SOURCE, mock(SessionHandle.class),
+                TEST_SESSION_ID, "any", mock(Params.class), mockRangingCallbacks);
 
         verify(mockRangingCallbacks).onRangingOpenFailed(any(), anyInt(), any());
         assertThat(mTestLooper.nextMessage()).isNull();
@@ -234,15 +239,16 @@
         Params mockParams = mock(FiraParams.class);
         IBinder mockBinder = mock(IBinder.class);
         UwbSession uwbSession = spy(
-                mUwbSessionManager.new UwbSession(mockSessionHandle, TEST_SESSION_ID,
-                        FiraParams.PROTOCOL_NAME, mockParams, mockRangingCallbacks));
+                mUwbSessionManager.new UwbSession(ATTRIBUTION_SOURCE, mockSessionHandle,
+                        TEST_SESSION_ID, FiraParams.PROTOCOL_NAME, mockParams,
+                        mockRangingCallbacks));
         doReturn(mockBinder).when(uwbSession).getBinder();
-        doReturn(uwbSession).when(mUwbSessionManager).createUwbSession(any(), anyInt(),
+        doReturn(uwbSession).when(mUwbSessionManager).createUwbSession(any(), any(), anyInt(),
                 anyString(), any(), any());
         doThrow(new RemoteException()).when(mockBinder).linkToDeath(any(), anyInt());
 
-        mUwbSessionManager.initSession(mockSessionHandle, TEST_SESSION_ID, FiraParams.PROTOCOL_NAME,
-                mockParams, mockRangingCallbacks);
+        mUwbSessionManager.initSession(ATTRIBUTION_SOURCE, mockSessionHandle, TEST_SESSION_ID,
+                FiraParams.PROTOCOL_NAME, mockParams, mockRangingCallbacks);
 
         verify(uwbSession).binderDied();
         verify(mockRangingCallbacks).onRangingOpenFailed(any(), anyInt(), any());
@@ -260,14 +266,15 @@
         Params mockParams = mock(FiraParams.class);
         IBinder mockBinder = mock(IBinder.class);
         UwbSession uwbSession = spy(
-                mUwbSessionManager.new UwbSession(mockSessionHandle, TEST_SESSION_ID,
-                        FiraParams.PROTOCOL_NAME, mockParams, mockRangingCallbacks));
+                mUwbSessionManager.new UwbSession(ATTRIBUTION_SOURCE, mockSessionHandle,
+                        TEST_SESSION_ID, FiraParams.PROTOCOL_NAME, mockParams,
+                        mockRangingCallbacks));
         doReturn(mockBinder).when(uwbSession).getBinder();
-        doReturn(uwbSession).when(mUwbSessionManager).createUwbSession(any(), anyInt(),
+        doReturn(uwbSession).when(mUwbSessionManager).createUwbSession(any(), any(), anyInt(),
                 anyString(), any(), any());
 
-        mUwbSessionManager.initSession(mockSessionHandle, TEST_SESSION_ID, FiraParams.PROTOCOL_NAME,
-                mockParams, mockRangingCallbacks);
+        mUwbSessionManager.initSession(ATTRIBUTION_SOURCE, mockSessionHandle, TEST_SESSION_ID,
+                FiraParams.PROTOCOL_NAME, mockParams, mockRangingCallbacks);
 
         verify(uwbSession, never()).binderDied();
         verify(mockRangingCallbacks, never()).onRangingOpenFailed(any(), anyInt(), any());
@@ -617,10 +624,10 @@
                 .build();
         IBinder mockBinder = mock(IBinder.class);
         UwbSession uwbSession = spy(
-                mUwbSessionManager.new UwbSession(mockSessionHandle, TEST_SESSION_ID,
-                        FiraParams.PROTOCOL_NAME, params, mockRangingCallbacks));
+                mUwbSessionManager.new UwbSession(ATTRIBUTION_SOURCE, mockSessionHandle,
+                        TEST_SESSION_ID, FiraParams.PROTOCOL_NAME, params, mockRangingCallbacks));
         doReturn(mockBinder).when(uwbSession).getBinder();
-        doReturn(uwbSession).when(mUwbSessionManager).createUwbSession(any(), anyInt(),
+        doReturn(uwbSession).when(mUwbSessionManager).createUwbSession(any(), any(), anyInt(),
                 anyString(), any(), any());
         doReturn(mock(WaitObj.class)).when(uwbSession).getWaitObj();
 
@@ -652,10 +659,10 @@
                 .build();
         IBinder mockBinder = mock(IBinder.class);
         UwbSession uwbSession = spy(
-                mUwbSessionManager.new UwbSession(mockSessionHandle, TEST_SESSION_ID,
-                        CccParams.PROTOCOL_NAME, params, mockRangingCallbacks));
+                mUwbSessionManager.new UwbSession(ATTRIBUTION_SOURCE, mockSessionHandle,
+                        TEST_SESSION_ID, CccParams.PROTOCOL_NAME, params, mockRangingCallbacks));
         doReturn(mockBinder).when(uwbSession).getBinder();
-        doReturn(uwbSession).when(mUwbSessionManager).createUwbSession(any(), anyInt(),
+        doReturn(uwbSession).when(mUwbSessionManager).createUwbSession(any(), any(), anyInt(),
                 anyString(), any(), any());
         doReturn(mock(WaitObj.class)).when(uwbSession).getWaitObj();
 
@@ -674,7 +681,7 @@
                 .thenReturn(UwbUciConstants.STATUS_CODE_OK);
 
 
-        mUwbSessionManager.initSession(uwbSession.getSessionHandle(),
+        mUwbSessionManager.initSession(ATTRIBUTION_SOURCE, uwbSession.getSessionHandle(),
                 TEST_SESSION_ID, FiraParams.PROTOCOL_NAME,
                 uwbSession.getParams(), uwbSession.getIUwbRangingCallbacks());
         mTestLooper.dispatchAll();
@@ -698,7 +705,7 @@
                 .thenReturn(UwbUciConstants.STATUS_CODE_OK);
 
 
-        mUwbSessionManager.initSession(uwbSession.getSessionHandle(),
+        mUwbSessionManager.initSession(ATTRIBUTION_SOURCE, uwbSession.getSessionHandle(),
                 TEST_SESSION_ID, FiraParams.PROTOCOL_NAME,
                 uwbSession.getParams(), uwbSession.getIUwbRangingCallbacks());
         mTestLooper.dispatchAll();
@@ -722,7 +729,7 @@
                 .thenReturn(UwbUciConstants.STATUS_CODE_OK);
 
 
-        mUwbSessionManager.initSession(uwbSession.getSessionHandle(),
+        mUwbSessionManager.initSession(ATTRIBUTION_SOURCE, uwbSession.getSessionHandle(),
                 TEST_SESSION_ID, FiraParams.PROTOCOL_NAME,
                 uwbSession.getParams(), uwbSession.getIUwbRangingCallbacks());
         mTestLooper.dispatchAll();
@@ -746,7 +753,7 @@
                 .thenReturn(UwbUciConstants.STATUS_CODE_FAILED);
 
 
-        mUwbSessionManager.initSession(uwbSession.getSessionHandle(),
+        mUwbSessionManager.initSession(ATTRIBUTION_SOURCE, uwbSession.getSessionHandle(),
                 TEST_SESSION_ID, FiraParams.PROTOCOL_NAME,
                 uwbSession.getParams(), uwbSession.getIUwbRangingCallbacks());
         mTestLooper.dispatchAll();
@@ -770,7 +777,7 @@
                 .thenReturn(UwbUciConstants.STATUS_CODE_FAILED);
 
 
-        mUwbSessionManager.initSession(uwbSession.getSessionHandle(),
+        mUwbSessionManager.initSession(ATTRIBUTION_SOURCE, uwbSession.getSessionHandle(),
                 TEST_SESSION_ID, FiraParams.PROTOCOL_NAME,
                 uwbSession.getParams(), uwbSession.getIUwbRangingCallbacks());
         mTestLooper.dispatchAll();
@@ -794,7 +801,7 @@
                 .thenReturn(UwbUciConstants.STATUS_CODE_FAILED);
 
 
-        mUwbSessionManager.initSession(uwbSession.getSessionHandle(),
+        mUwbSessionManager.initSession(ATTRIBUTION_SOURCE, uwbSession.getSessionHandle(),
                 TEST_SESSION_ID, FiraParams.PROTOCOL_NAME,
                 uwbSession.getParams(), uwbSession.getIUwbRangingCallbacks());
         mTestLooper.dispatchAll();
@@ -809,7 +816,7 @@
 
     private UwbSession prepareExistingUwbSession() throws Exception {
         UwbSession uwbSession = setUpUwbSessionForExecution();
-        mUwbSessionManager.initSession(uwbSession.getSessionHandle(),
+        mUwbSessionManager.initSession(ATTRIBUTION_SOURCE, uwbSession.getSessionHandle(),
                 TEST_SESSION_ID, FiraParams.PROTOCOL_NAME,
                 uwbSession.getParams(), uwbSession.getIUwbRangingCallbacks());
         mTestLooper.nextMessage(); // remove the OPEN_RANGING msg;
@@ -821,7 +828,7 @@
 
     private UwbSession prepareExistingCccUwbSession() throws Exception {
         UwbSession uwbSession = setUpCccUwbSessionForExecution();
-        mUwbSessionManager.initSession(uwbSession.getSessionHandle(),
+        mUwbSessionManager.initSession(ATTRIBUTION_SOURCE, uwbSession.getSessionHandle(),
                 TEST_SESSION_ID, CccParams.PROTOCOL_NAME,
                 uwbSession.getParams(), uwbSession.getIUwbRangingCallbacks());
         mTestLooper.nextMessage(); // remove the OPEN_RANGING msg;
@@ -1230,4 +1237,18 @@
                 eq(uwbSession), eq(UwbUciConstants.STATUS_CODE_FAILED));
         assertThat(mUwbSessionManager.getSessionCount()).isEqualTo(0);
     }
+
+
+    @Test
+    public void testHandleClientDeath() throws Exception {
+        UwbSession uwbSession = prepareExistingUwbSession();
+        when(mNativeUwbManager.deInitSession(TEST_SESSION_ID))
+                .thenReturn((byte) UwbUciConstants.STATUS_CODE_FAILED);
+
+        uwbSession.binderDied();
+
+        verify(mUwbMetrics).logRangingCloseEvent(
+                eq(uwbSession), eq(UwbUciConstants.STATUS_CODE_FAILED));
+        assertThat(mUwbSessionManager.getSessionCount()).isEqualTo(0);
+    }
 }
diff --git a/service/tests/src/com/android/server/uwb/UwbSessionNotificationManagerTest.java b/service/tests/src/com/android/server/uwb/UwbSessionNotificationManagerTest.java
index a934477..6705948 100644
--- a/service/tests/src/com/android/server/uwb/UwbSessionNotificationManagerTest.java
+++ b/service/tests/src/com/android/server/uwb/UwbSessionNotificationManagerTest.java
@@ -23,10 +23,12 @@
 import static org.mockito.ArgumentMatchers.argThat;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.any;
+import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.validateMockitoUsage;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.content.AttributionSource;
 import android.platform.test.annotations.Presubmit;
 import android.test.suitebuilder.annotation.SmallTest;
 import android.util.Pair;
@@ -83,6 +85,10 @@
     private static final int TEST_AOA_DEST_ELEVATION_FOM = 90;
     private static final int TEST_SLOT_IDX = 10;
     private static final long TEST_ELAPSED_NANOS = 100L;
+    private static final int UID = 343453;
+    private static final String PACKAGE_NAME = "com.uwb.test";
+    private static final AttributionSource ATTRIBUTION_SOURCE =
+            new AttributionSource.Builder(UID).setPackageName(PACKAGE_NAME).build();
 
     @Mock private UwbInjector mUwbInjector;
     @Mock private UwbSessionManager.UwbSession mUwbSession;
@@ -95,14 +101,15 @@
     @Before
     public void setUp() throws Exception {
         MockitoAnnotations.initMocks(this);
-
         when(mUwbSession.getSessionHandle()).thenReturn(mSessionHandle);
         when(mUwbSession.getIUwbRangingCallbacks()).thenReturn(mIUwbRangingCallbacks);
         when(mUwbSession.getProtocolName()).thenReturn(FiraParams.PROTOCOL_NAME);
         when(mUwbSession.getParams()).thenReturn(mFiraParams);
+        when(mUwbSession.getAttributionSource()).thenReturn(ATTRIBUTION_SOURCE);
         when(mFiraParams.getAoaResultRequest()).thenReturn(
                 FiraParams.AOA_RESULT_REQUEST_MODE_REQ_AOA_RESULTS);
         when(mFiraParams.hasResultReportPhase()).thenReturn(false);
+        when(mUwbInjector.checkUwbRangingPermissionForDataDelivery(any(), any())).thenReturn(true);
         when(mUwbInjector.getElapsedSinceBootNanos()).thenReturn(TEST_ELAPSED_NANOS);
         mUwbSessionNotificationManager = new UwbSessionNotificationManager(mUwbInjector);
     }
@@ -116,6 +123,18 @@
     }
 
     @Test
+    public void testOnRangingResultWithoutUwbRangingPermission() throws Exception {
+        Pair<UwbRangingData, RangingReport> testRangingDataAndRangingReport =
+                generateRangingDataAndRangingReport(true, true, false, false);
+        when(mUwbInjector.checkUwbRangingPermissionForDataDelivery(eq(ATTRIBUTION_SOURCE), any()))
+                .thenReturn(false);
+        mUwbSessionNotificationManager.onRangingResult(
+                mUwbSession, testRangingDataAndRangingReport.first);
+
+        verify(mIUwbRangingCallbacks, never()).onRangingResult(any(), any());
+    }
+
+    @Test
     public void testOnRangingResultWithAoa() throws Exception {
         Pair<UwbRangingData, RangingReport> testRangingDataAndRangingReport =
                 generateRangingDataAndRangingReport(true, true, false, false);
diff --git a/service/tests/src/com/android/server/uwb/UwbShellCommandTest.java b/service/tests/src/com/android/server/uwb/UwbShellCommandTest.java
index 2de85e3..b8d1c3b 100644
--- a/service/tests/src/com/android/server/uwb/UwbShellCommandTest.java
+++ b/service/tests/src/com/android/server/uwb/UwbShellCommandTest.java
@@ -39,7 +39,7 @@
 import android.os.PersistableBundle;
 import android.os.Process;
 import android.util.Pair;
-import android.uwb.IUwbRangingCallbacks2;
+import android.uwb.IUwbRangingCallbacks;
 import android.uwb.RangingMeasurement;
 import android.uwb.RangingReport;
 import android.uwb.SessionHandle;
@@ -171,15 +171,15 @@
     }
 
     private static class MutableCb {
-        @Nullable public IUwbRangingCallbacks2 cb;
+        @Nullable public IUwbRangingCallbacks cb;
     }
 
-    private Pair<IUwbRangingCallbacks2, SessionHandle> triggerAndVerifyRangingStart(
+    private Pair<IUwbRangingCallbacks, SessionHandle> triggerAndVerifyRangingStart(
             String[] rangingStartCmd, @NonNull Params openRangingParams) throws Exception {
         return triggerAndVerifyRangingStart(rangingStartCmd, openRangingParams, null);
     }
 
-    private Pair<IUwbRangingCallbacks2, SessionHandle> triggerAndVerifyRangingStart(
+    private Pair<IUwbRangingCallbacks, SessionHandle> triggerAndVerifyRangingStart(
             String[] rangingStartCmd, @NonNull Params openRangingParams, @Nullable Params
             startRangingParams) throws Exception {
         final MutableCb cbCaptor = new MutableCb();
@@ -222,7 +222,7 @@
     }
 
     private void triggerAndVerifyRangingStop(
-            String[] rangingStopCmd, IUwbRangingCallbacks2 cb, SessionHandle sessionHandle)
+            String[] rangingStopCmd, IUwbRangingCallbacks cb, SessionHandle sessionHandle)
             throws Exception {
         doAnswer(invocation -> {
             cb.onRangingStopped(sessionHandle, REASON_LOCAL_REQUEST, new PersistableBundle());
@@ -280,7 +280,7 @@
 
     @Test
     public void testRangingReportFiraRanging() throws Exception {
-        Pair<IUwbRangingCallbacks2, SessionHandle> cbAndSessionHandle =
+        Pair<IUwbRangingCallbacks, SessionHandle> cbAndSessionHandle =
                 triggerAndVerifyRangingStart(
                         new String[]{"start-fira-ranging-session"},
                         DEFAULT_FIRA_OPEN_SESSION_PARAMS.build());
@@ -295,7 +295,7 @@
 
     @Test
     public void testRangingReportAllFiraRanging() throws Exception {
-        Pair<IUwbRangingCallbacks2, SessionHandle> cbAndSessionHandle =
+        Pair<IUwbRangingCallbacks, SessionHandle> cbAndSessionHandle =
                 triggerAndVerifyRangingStart(
                         new String[]{"start-fira-ranging-session"},
                         DEFAULT_FIRA_OPEN_SESSION_PARAMS.build());
@@ -309,7 +309,7 @@
 
     @Test
     public void testStopFiraRanging() throws Exception {
-        Pair<IUwbRangingCallbacks2, SessionHandle> cbAndSessionHandle =
+        Pair<IUwbRangingCallbacks, SessionHandle> cbAndSessionHandle =
                 triggerAndVerifyRangingStart(
                         new String[]{"start-fira-ranging-session"},
                         DEFAULT_FIRA_OPEN_SESSION_PARAMS.build());
@@ -343,7 +343,7 @@
     @Test
     public void testStopCccRanging() throws Exception {
         CccOpenRangingParams openSessionParams = DEFAULT_CCC_OPEN_RANGING_PARAMS.build();
-        Pair<IUwbRangingCallbacks2, SessionHandle> cbAndSessionHandle =
+        Pair<IUwbRangingCallbacks, SessionHandle> cbAndSessionHandle =
                 triggerAndVerifyRangingStart(
                         new String[]{"start-ccc-ranging-session"},
                         openSessionParams,
@@ -357,7 +357,7 @@
     @Test
     public void testStopAllRanging() throws Exception {
         CccOpenRangingParams openSessionParams = DEFAULT_CCC_OPEN_RANGING_PARAMS.build();
-        Pair<IUwbRangingCallbacks2, SessionHandle> cbAndSessionHandle =
+        Pair<IUwbRangingCallbacks, SessionHandle> cbAndSessionHandle =
                 triggerAndVerifyRangingStart(
                         new String[]{"start-ccc-ranging-session"},
                         openSessionParams,