Revert "DO NOT MERGE: Fork GNSS implementation"

Revert submission 2149712

Reason for revert: Breaks build http://b/219590763
Reverted Changes:
I757a10985:DO NOT MERGE: Switch to Trout's GNSS HAL
I1b44c5b23:DO NOT MERGE: Update SeLinux Policy for Trout GNSS...
Iefc7c6eaa:DO NOT MERGE: Fork GNSS implementation

Change-Id: Id49654b05173e72c6b5d1db308726c52724d1851
diff --git a/hal/gnss/aidl/Android.bp b/hal/gnss/aidl/Android.bp
deleted file mode 100644
index e9b36be..0000000
--- a/hal/gnss/aidl/Android.bp
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright (C) 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 {
-    default_applicable_licenses: ["Android-Apache-2.0"],
-}
-
-cc_binary {
-    name: "android.hardware.gnss-service.trout",
-    relative_install_path: "hw",
-    init_rc: [
-        "gnss-trout.rc",
-    ],
-    vintf_fragments: [
-        "gnss-trout.xml",
-        "gnss@2.1-trout-service.xml",
-    ],
-    vendor: true,
-    cflags: [
-        "-Wall",
-        "-Wextra",
-    ],
-    shared_libs: [
-        "libbase",
-        "libcutils",
-        "libbinder_ndk",
-        "libhidlbase",
-        "libutils",
-        "liblog",
-        "android.hardware.gnss@2.1",
-        "android.hardware.gnss@2.0",
-        "android.hardware.gnss@1.1",
-        "android.hardware.gnss@1.0",
-        "android.hardware.gnss.measurement_corrections@1.1",
-        "android.hardware.gnss.measurement_corrections@1.0",
-        "android.hardware.gnss.visibility_control@1.0",
-        "android.hardware.gnss-V1-ndk_platform",
-    ],
-    srcs: [
-        "Gnss.cpp",
-        "GnssHidlHal.cpp",
-        "GnssPowerIndication.cpp",
-        "GnssPsds.cpp",
-        "GnssConfiguration.cpp",
-        "GnssMeasurementInterface.cpp",
-        "service.cpp",
-    ],
-    static_libs: [
-        "android.hardware.gnss@trout-common-default-lib",
-    ],
-}
diff --git a/hal/gnss/aidl/Gnss.cpp b/hal/gnss/aidl/Gnss.cpp
deleted file mode 100644
index 6061eec..0000000
--- a/hal/gnss/aidl/Gnss.cpp
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright (C) 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.
- */
-
-#define LOG_TAG "GnssAidl"
-
-#include "Gnss.h"
-#include <log/log.h>
-#include "GnssConfiguration.h"
-#include "GnssMeasurementInterface.h"
-#include "GnssPsds.h"
-
-namespace aidl::android::hardware::gnss {
-
-std::shared_ptr<IGnssCallback> Gnss::sGnssCallback = nullptr;
-
-ndk::ScopedAStatus Gnss::setCallback(const std::shared_ptr<IGnssCallback>& callback) {
-    ALOGD("Gnss::setCallback");
-    if (callback == nullptr) {
-        ALOGE("%s: Null callback ignored", __func__);
-        return ndk::ScopedAStatus::fromExceptionCode(STATUS_INVALID_OPERATION);
-    }
-
-    sGnssCallback = callback;
-
-    int capabilities = (int)(IGnssCallback::CAPABILITY_SATELLITE_BLOCKLIST |
-                             IGnssCallback::CAPABILITY_SATELLITE_PVT |
-                             IGnssCallback::CAPABILITY_CORRELATION_VECTOR);
-
-    auto status = sGnssCallback->gnssSetCapabilitiesCb(capabilities);
-    if (!status.isOk()) {
-        ALOGE("%s: Unable to invoke callback.gnssSetCapabilities", __func__);
-    }
-
-    return ndk::ScopedAStatus::ok();
-}
-
-ndk::ScopedAStatus Gnss::close() {
-    ALOGD("Gnss::close");
-    sGnssCallback = nullptr;
-    return ndk::ScopedAStatus::ok();
-}
-
-ndk::ScopedAStatus Gnss::getExtensionPsds(std::shared_ptr<IGnssPsds>* iGnssPsds) {
-    ALOGD("Gnss::getExtensionPsds");
-    *iGnssPsds = SharedRefBase::make<GnssPsds>();
-    return ndk::ScopedAStatus::ok();
-}
-
-ndk::ScopedAStatus Gnss::getExtensionGnssConfiguration(
-        std::shared_ptr<IGnssConfiguration>* iGnssConfiguration) {
-    ALOGD("Gnss::getExtensionGnssConfiguration");
-    if (mGnssConfiguration == nullptr) {
-        mGnssConfiguration = SharedRefBase::make<GnssConfiguration>();
-    }
-    *iGnssConfiguration = mGnssConfiguration;
-    return ndk::ScopedAStatus::ok();
-}
-
-ndk::ScopedAStatus Gnss::getExtensionGnssPowerIndication(
-        std::shared_ptr<IGnssPowerIndication>* iGnssPowerIndication) {
-    ALOGD("Gnss::getExtensionGnssPowerIndication");
-    if (mGnssPowerIndication == nullptr) {
-        mGnssPowerIndication = SharedRefBase::make<GnssPowerIndication>();
-    }
-
-    *iGnssPowerIndication = mGnssPowerIndication;
-    return ndk::ScopedAStatus::ok();
-}
-
-ndk::ScopedAStatus Gnss::getExtensionGnssMeasurement(
-        std::shared_ptr<IGnssMeasurementInterface>* iGnssMeasurement) {
-    ALOGD("Gnss::getExtensionGnssMeasurement");
-
-    *iGnssMeasurement = SharedRefBase::make<GnssMeasurementInterface>();
-    return ndk::ScopedAStatus::ok();
-}
-
-}  // namespace aidl::android::hardware::gnss
diff --git a/hal/gnss/aidl/Gnss.h b/hal/gnss/aidl/Gnss.h
deleted file mode 100644
index 76ebe4d..0000000
--- a/hal/gnss/aidl/Gnss.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (C) 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.
- */
-
-#pragma once
-
-#include <aidl/android/hardware/gnss/BnGnss.h>
-#include <aidl/android/hardware/gnss/BnGnssConfiguration.h>
-#include <aidl/android/hardware/gnss/BnGnssMeasurementInterface.h>
-#include <aidl/android/hardware/gnss/BnGnssPowerIndication.h>
-#include <aidl/android/hardware/gnss/BnGnssPsds.h>
-#include "GnssConfiguration.h"
-#include "GnssPowerIndication.h"
-
-namespace aidl::android::hardware::gnss {
-
-class Gnss : public BnGnss {
-  public:
-    ndk::ScopedAStatus setCallback(const std::shared_ptr<IGnssCallback>& callback) override;
-    ndk::ScopedAStatus close() override;
-    ndk::ScopedAStatus getExtensionPsds(std::shared_ptr<IGnssPsds>* iGnssPsds) override;
-    ndk::ScopedAStatus getExtensionGnssConfiguration(
-            std::shared_ptr<IGnssConfiguration>* iGnssConfiguration) override;
-    ndk::ScopedAStatus getExtensionGnssPowerIndication(
-            std::shared_ptr<IGnssPowerIndication>* iGnssPowerIndication) override;
-    ndk::ScopedAStatus getExtensionGnssMeasurement(
-            std::shared_ptr<IGnssMeasurementInterface>* iGnssMeasurement) override;
-
-    std::shared_ptr<GnssConfiguration> mGnssConfiguration;
-    std::shared_ptr<GnssPowerIndication> mGnssPowerIndication;
-
-  private:
-    static std::shared_ptr<IGnssCallback> sGnssCallback;
-};
-
-}  // namespace aidl::android::hardware::gnss
diff --git a/hal/gnss/aidl/GnssConfiguration.cpp b/hal/gnss/aidl/GnssConfiguration.cpp
deleted file mode 100644
index 30e0d8c..0000000
--- a/hal/gnss/aidl/GnssConfiguration.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (C) 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.
- */
-
-#define LOG_TAG "GnssConfigurationAidl"
-
-#include "GnssConfiguration.h"
-#include <log/log.h>
-
-namespace aidl::android::hardware::gnss {
-
-ndk::ScopedAStatus GnssConfiguration::setBlocklist(const vector<BlocklistedSource>& sourceList) {
-    ALOGD("GnssConfiguration::setBlocklist");
-    std::unique_lock<std::recursive_mutex> lock(mMutex);
-    mBlocklistedConstellationSet.clear();
-    mBlocklistedSourceSet.clear();
-    for (const auto& source : sourceList) {
-        if (source.svid == 0) {
-            // Wildcard blocklist, i.e., blocklist entire constellation.
-            mBlocklistedConstellationSet.insert(source.constellation);
-        } else {
-            mBlocklistedSourceSet.insert(source);
-        }
-    }
-    return ndk::ScopedAStatus::ok();
-}
-
-bool GnssConfiguration::isBlocklistedV2_1(const GnssSvInfoV2_1& gnssSvInfo) const {
-    std::unique_lock<std::recursive_mutex> lock(mMutex);
-    if (mBlocklistedConstellationSet.find(static_cast<GnssConstellationType>(
-                gnssSvInfo.v2_0.constellation)) != mBlocklistedConstellationSet.end()) {
-        return true;
-    }
-    BlocklistedSource source = {
-            .constellation = static_cast<GnssConstellationType>(gnssSvInfo.v2_0.constellation),
-            .svid = gnssSvInfo.v2_0.v1_0.svid};
-    return (mBlocklistedSourceSet.find(source) != mBlocklistedSourceSet.end());
-}
-
-}  // namespace aidl::android::hardware::gnss
diff --git a/hal/gnss/aidl/GnssConfiguration.h b/hal/gnss/aidl/GnssConfiguration.h
deleted file mode 100644
index 491733c..0000000
--- a/hal/gnss/aidl/GnssConfiguration.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright (C) 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.
- */
-
-#pragma once
-
-#include <aidl/android/hardware/gnss/BnGnssConfiguration.h>
-#include <android/hardware/gnss/2.1/IGnssCallback.h>
-#include <mutex>
-#include <unordered_set>
-#include <vector>
-
-namespace aidl::android::hardware::gnss {
-
-struct BlocklistedSourceHash {
-    inline int operator()(const BlocklistedSource& source) const {
-        return int(source.constellation) * 1000 + int(source.svid);
-    }
-};
-
-struct BlocklistedSourceEqual {
-    inline bool operator()(const BlocklistedSource& s1, const BlocklistedSource& s2) const {
-        return (s1.constellation == s2.constellation) && (s1.svid == s2.svid);
-    }
-};
-
-using GnssSvInfoV2_1 = ::android::hardware::gnss::V2_1::IGnssCallback::GnssSvInfo;
-using std::vector;
-using BlocklistedSourceSet =
-        std::unordered_set<BlocklistedSource, BlocklistedSourceHash, BlocklistedSourceEqual>;
-using BlocklistedConstellationSet =
-        std::unordered_set<android::hardware::gnss::GnssConstellationType>;
-
-struct GnssConfiguration : public BnGnssConfiguration {
-  public:
-    ndk::ScopedAStatus setSuplVersion(int) override { return ndk::ScopedAStatus::ok(); }
-
-    ndk::ScopedAStatus setSuplMode(int) override { return ndk::ScopedAStatus::ok(); }
-
-    ndk::ScopedAStatus setLppProfile(int) override { return ndk::ScopedAStatus::ok(); }
-
-    ndk::ScopedAStatus setGlonassPositioningProtocol(int) override {
-        return ndk::ScopedAStatus::ok();
-    }
-
-    ndk::ScopedAStatus setEmergencySuplPdn(bool) override { return ndk::ScopedAStatus::ok(); }
-
-    ndk::ScopedAStatus setEsExtensionSec(int) override { return ndk::ScopedAStatus::ok(); }
-
-    ndk::ScopedAStatus setBlocklist(const vector<BlocklistedSource>& blocklist) override;
-
-    bool isBlocklistedV2_1(const GnssSvInfoV2_1& gnssSvInfo) const;
-
-  private:
-    BlocklistedSourceSet mBlocklistedSourceSet;
-    BlocklistedConstellationSet mBlocklistedConstellationSet;
-    mutable std::recursive_mutex mMutex;
-};
-
-}  // namespace aidl::android::hardware::gnss
diff --git a/hal/gnss/aidl/GnssHidlHal.cpp b/hal/gnss/aidl/GnssHidlHal.cpp
deleted file mode 100644
index 10b0106..0000000
--- a/hal/gnss/aidl/GnssHidlHal.cpp
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright (C) 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.
- */
-
-#define LOG_TAG "GnssHidlHal"
-
-#include "GnssHidlHal.h"
-
-namespace aidl::android::hardware::gnss {
-
-using GnssSvInfo = ::android::hardware::gnss::V2_1::IGnssCallback::GnssSvInfo;
-
-GnssHidlHal::GnssHidlHal(const std::shared_ptr<Gnss>& gnssAidl) : mGnssAidl(gnssAidl) {
-    Gnss* iGnss = mGnssAidl.get();
-    std::shared_ptr<IGnssConfiguration> iGnssConfiguration;
-    auto status = iGnss->getExtensionGnssConfiguration(&iGnssConfiguration);
-    if (!status.isOk()) {
-        ALOGE("Failed to getExtensionGnssConfiguration.");
-    } else {
-        mGnssConfigurationAidl = iGnss->mGnssConfiguration;
-    }
-
-    std::shared_ptr<IGnssPowerIndication> iGnssPowerIndication;
-    status = iGnss->getExtensionGnssPowerIndication(&iGnssPowerIndication);
-    if (!status.isOk()) {
-        ALOGE("Failed to getExtensionGnssPowerIndication.");
-    } else {
-        mGnssPowerIndicationAidl = iGnss->mGnssPowerIndication;
-    }
-};
-
-hidl_vec<GnssSvInfo> GnssHidlHal::filterBlocklistedSatellitesV2_1(
-        hidl_vec<GnssSvInfo> gnssSvInfoList) {
-    if (mGnssConfigurationAidl == nullptr) {
-        ALOGE("Handle to AIDL GnssConfiguration is not available.");
-        return gnssSvInfoList;
-    }
-    for (uint32_t i = 0; i < gnssSvInfoList.size(); i++) {
-        if (mGnssConfigurationAidl->isBlocklistedV2_1(gnssSvInfoList[i])) {
-            ALOGD("Blocklisted constellation: %d, svid: %d",
-                  (int)gnssSvInfoList[i].v2_0.constellation, gnssSvInfoList[i].v2_0.v1_0.svid);
-            gnssSvInfoList[i].v2_0.v1_0.svFlag &= ~static_cast<uint8_t>(
-                    ::android::hardware::gnss::V1_0::IGnssCallback::GnssSvFlags::USED_IN_FIX);
-        }
-    }
-    return gnssSvInfoList;
-}
-
-void GnssHidlHal::notePowerConsumption() {
-    mGnssPowerIndicationAidl->notePowerConsumption();
-}
-
-}  // namespace aidl::android::hardware::gnss
diff --git a/hal/gnss/aidl/GnssHidlHal.h b/hal/gnss/aidl/GnssHidlHal.h
deleted file mode 100644
index 5fb4f97..0000000
--- a/hal/gnss/aidl/GnssHidlHal.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 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.
- */
-
-#pragma once
-
-#include "Gnss.h"
-#include "GnssConfiguration.h"
-#include "v2_1/GnssTemplate.h"
-
-namespace aidl::android::hardware::gnss {
-
-class GnssHidlHal : public ::android::hardware::gnss::common::implementation::GnssTemplate<
-                            ::android::hardware::gnss::V2_1::IGnss> {
-  public:
-    GnssHidlHal(const std::shared_ptr<Gnss>& gnssAidl);
-
-  private:
-    hidl_vec<::android::hardware::gnss::V2_1::IGnssCallback::GnssSvInfo>
-    filterBlocklistedSatellitesV2_1(
-            hidl_vec<::android::hardware::gnss::V2_1::IGnssCallback::GnssSvInfo> gnssSvInfoList)
-            override;
-    void notePowerConsumption() override;
-
-    std::shared_ptr<Gnss> mGnssAidl;
-    std::shared_ptr<GnssConfiguration> mGnssConfigurationAidl;
-    std::shared_ptr<GnssPowerIndication> mGnssPowerIndicationAidl;
-};
-
-}  // namespace aidl::android::hardware::gnss
diff --git a/hal/gnss/aidl/GnssMeasurementInterface.cpp b/hal/gnss/aidl/GnssMeasurementInterface.cpp
deleted file mode 100644
index fcc1f98..0000000
--- a/hal/gnss/aidl/GnssMeasurementInterface.cpp
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Copyright (C) 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.
- */
-
-#define LOG_TAG "GnssMeasIfaceAidl"
-
-#include "GnssMeasurementInterface.h"
-#include <aidl/android/hardware/gnss/BnGnss.h>
-#include <log/log.h>
-#include "Utils.h"
-
-namespace aidl::android::hardware::gnss {
-
-using Utils = ::android::hardware::gnss::common::Utils;
-
-std::shared_ptr<IGnssMeasurementCallback> GnssMeasurementInterface::sCallback = nullptr;
-
-GnssMeasurementInterface::GnssMeasurementInterface() : mMinIntervalMillis(1000) {}
-
-GnssMeasurementInterface::~GnssMeasurementInterface() {
-    stop();
-}
-
-ndk::ScopedAStatus GnssMeasurementInterface::setCallback(
-        const std::shared_ptr<IGnssMeasurementCallback>& callback, const bool enableFullTracking,
-        const bool enableCorrVecOutputs) {
-    ALOGD("setCallback: enableFullTracking: %d enableCorrVecOutputs: %d", (int)enableFullTracking,
-          (int)enableCorrVecOutputs);
-    std::unique_lock<std::mutex> lock(mMutex);
-    sCallback = callback;
-
-    if (mIsActive) {
-        ALOGW("GnssMeasurement callback already set. Resetting the callback...");
-        stop();
-    }
-    start(enableCorrVecOutputs);
-
-    return ndk::ScopedAStatus::ok();
-}
-
-ndk::ScopedAStatus GnssMeasurementInterface::close() {
-    ALOGD("close");
-    stop();
-    std::unique_lock<std::mutex> lock(mMutex);
-    sCallback = nullptr;
-    return ndk::ScopedAStatus::ok();
-}
-
-void GnssMeasurementInterface::start(const bool enableCorrVecOutputs) {
-    ALOGD("start");
-    mIsActive = true;
-    mThread = std::thread([this, enableCorrVecOutputs]() {
-        while (mIsActive == true) {
-            auto measurement = Utils::getMockMeasurement(enableCorrVecOutputs);
-            this->reportMeasurement(measurement);
-
-            std::this_thread::sleep_for(std::chrono::milliseconds(mMinIntervalMillis));
-        }
-    });
-    mThread.detach();
-}
-
-void GnssMeasurementInterface::stop() {
-    ALOGD("stop");
-    mIsActive = false;
-}
-
-void GnssMeasurementInterface::reportMeasurement(const GnssData& data) {
-    ALOGD("reportMeasurement()");
-    std::shared_ptr<IGnssMeasurementCallback> callbackCopy;
-    {
-        std::unique_lock<std::mutex> lock(mMutex);
-        if (sCallback == nullptr) {
-            ALOGE("%s: GnssMeasurement::sCallback is null.", __func__);
-            return;
-        }
-        callbackCopy = sCallback;
-    }
-    callbackCopy->gnssMeasurementCb(data);
-}
-
-}  // namespace aidl::android::hardware::gnss
diff --git a/hal/gnss/aidl/GnssMeasurementInterface.h b/hal/gnss/aidl/GnssMeasurementInterface.h
deleted file mode 100644
index db63515..0000000
--- a/hal/gnss/aidl/GnssMeasurementInterface.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (C) 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.
- */
-
-#pragma once
-
-#include <aidl/android/hardware/gnss/BnGnssMeasurementCallback.h>
-#include <aidl/android/hardware/gnss/BnGnssMeasurementInterface.h>
-#include <atomic>
-#include <mutex>
-#include <thread>
-
-namespace aidl::android::hardware::gnss {
-
-struct GnssMeasurementInterface : public BnGnssMeasurementInterface {
-  public:
-    GnssMeasurementInterface();
-    ~GnssMeasurementInterface();
-    ndk::ScopedAStatus setCallback(const std::shared_ptr<IGnssMeasurementCallback>& callback,
-                                   const bool enableFullTracking,
-                                   const bool enableCorrVecOutputs) override;
-    ndk::ScopedAStatus close() override;
-
-  private:
-    void start(const bool enableCorrVecOutputs);
-    void stop();
-    void reportMeasurement(const GnssData&);
-
-    std::atomic<long> mMinIntervalMillis;
-    std::atomic<bool> mIsActive;
-    std::thread mThread;
-
-    // Guarded by mMutex
-    static std::shared_ptr<IGnssMeasurementCallback> sCallback;
-
-    // Synchronization lock for sCallback
-    mutable std::mutex mMutex;
-};
-
-}  // namespace aidl::android::hardware::gnss
diff --git a/hal/gnss/aidl/GnssPowerIndication.cpp b/hal/gnss/aidl/GnssPowerIndication.cpp
deleted file mode 100644
index 4dec1c6..0000000
--- a/hal/gnss/aidl/GnssPowerIndication.cpp
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright (C) 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.
- */
-
-#define LOG_TAG "GnssPowerIndicationAidl"
-
-#include "GnssPowerIndication.h"
-#include <aidl/android/hardware/gnss/BnGnss.h>
-#include <log/log.h>
-#include <utils/SystemClock.h>
-
-namespace aidl::android::hardware::gnss {
-
-std::shared_ptr<IGnssPowerIndicationCallback> GnssPowerIndication::sCallback = nullptr;
-
-ndk::ScopedAStatus GnssPowerIndication::setCallback(
-        const std::shared_ptr<IGnssPowerIndicationCallback>& callback) {
-    ALOGD("setCallback");
-    std::unique_lock<std::mutex> lock(mMutex);
-    sCallback = callback;
-    sCallback->setCapabilitiesCb(IGnssPowerIndicationCallback::CAPABILITY_TOTAL |
-                                 IGnssPowerIndicationCallback::CAPABILITY_SINGLEBAND_TRACKING |
-                                 IGnssPowerIndicationCallback::CAPABILITY_MULTIBAND_TRACKING |
-                                 IGnssPowerIndicationCallback::CAPABILITY_SINGLEBAND_ACQUISITION |
-                                 IGnssPowerIndicationCallback::CAPABILITY_MULTIBAND_ACQUISITION |
-                                 IGnssPowerIndicationCallback::CAPABILITY_OTHER_MODES);
-    return ndk::ScopedAStatus::ok();
-}
-
-ndk::ScopedAStatus GnssPowerIndication::requestGnssPowerStats() {
-    ALOGD("requestGnssPowerStats");
-    std::unique_lock<std::mutex> lock(mMutex);
-
-    ElapsedRealtime elapsedRealtime = {
-            .flags = ElapsedRealtime::HAS_TIMESTAMP_NS | ElapsedRealtime::HAS_TIME_UNCERTAINTY_NS,
-            .timestampNs = ::android::elapsedRealtimeNano(),
-            .timeUncertaintyNs = 1000,
-    };
-    GnssPowerStats gnssPowerStats = {
-            .elapsedRealtime = elapsedRealtime,
-            .totalEnergyMilliJoule = 1.500e+3 + numLocationReported * 22.0,
-            .singlebandTrackingModeEnergyMilliJoule = 0.0,
-            .multibandTrackingModeEnergyMilliJoule = 1.28e+2 + numLocationReported * 4.0,
-            .singlebandAcquisitionModeEnergyMilliJoule = 0.0,
-            .multibandAcquisitionModeEnergyMilliJoule = 3.65e+2 + numLocationReported * 15.0,
-            .otherModesEnergyMilliJoule = {1.232e+2, 3.234e+3},
-    };
-    sCallback->gnssPowerStatsCb(gnssPowerStats);
-    return ndk::ScopedAStatus::ok();
-}
-
-void GnssPowerIndication::notePowerConsumption() {
-    numLocationReported++;
-}
-
-}  // namespace aidl::android::hardware::gnss
diff --git a/hal/gnss/aidl/GnssPowerIndication.h b/hal/gnss/aidl/GnssPowerIndication.h
deleted file mode 100644
index 93ca0b7..0000000
--- a/hal/gnss/aidl/GnssPowerIndication.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (C) 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.
- */
-
-#pragma once
-
-#include <aidl/android/hardware/gnss/BnGnssPowerIndication.h>
-
-namespace aidl::android::hardware::gnss {
-
-struct GnssPowerIndication : public BnGnssPowerIndication {
-  public:
-    ndk::ScopedAStatus setCallback(
-            const std::shared_ptr<IGnssPowerIndicationCallback>& callback) override;
-    ndk::ScopedAStatus requestGnssPowerStats() override;
-
-    void notePowerConsumption();
-
-  private:
-    // Guarded by mMutex
-    static std::shared_ptr<IGnssPowerIndicationCallback> sCallback;
-
-    // Synchronization lock for sCallback
-    mutable std::mutex mMutex;
-
-    int numLocationReported;
-};
-
-}  // namespace aidl::android::hardware::gnss
diff --git a/hal/gnss/aidl/GnssPsds.cpp b/hal/gnss/aidl/GnssPsds.cpp
deleted file mode 100644
index 6512af6..0000000
--- a/hal/gnss/aidl/GnssPsds.cpp
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (C) 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.
- */
-
-#define LOG_TAG "GnssPsdsAidl"
-
-#include "GnssPsds.h"
-#include <aidl/android/hardware/gnss/BnGnss.h>
-#include <log/log.h>
-
-namespace aidl::android::hardware::gnss {
-
-std::shared_ptr<IGnssPsdsCallback> GnssPsds::sCallback = nullptr;
-
-ndk::ScopedAStatus GnssPsds::setCallback(const std::shared_ptr<IGnssPsdsCallback>& callback) {
-    ALOGD("setCallback");
-    std::unique_lock<std::mutex> lock(mMutex);
-    sCallback = callback;
-    return ndk::ScopedAStatus::ok();
-}
-
-ndk::ScopedAStatus GnssPsds::injectPsdsData(PsdsType psdsType,
-                                            const std::vector<uint8_t>& psdsData) {
-    ALOGD("injectPsdsData. psdsType: %d, psdsData: %d bytes", static_cast<int>(psdsType),
-          static_cast<int>(psdsData.size()));
-    if (psdsData.size() > 0) {
-        return ndk::ScopedAStatus::ok();
-    } else {
-        return ndk::ScopedAStatus::fromServiceSpecificError(IGnss::ERROR_INVALID_ARGUMENT);
-    }
-}
-}  // namespace aidl::android::hardware::gnss
diff --git a/hal/gnss/aidl/GnssPsds.h b/hal/gnss/aidl/GnssPsds.h
deleted file mode 100644
index de9e68f..0000000
--- a/hal/gnss/aidl/GnssPsds.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 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.
- */
-
-#pragma once
-
-#include <aidl/android/hardware/gnss/BnGnssPsds.h>
-
-namespace aidl::android::hardware::gnss {
-
-struct GnssPsds : public BnGnssPsds {
-  public:
-    ndk::ScopedAStatus setCallback(const std::shared_ptr<IGnssPsdsCallback>& callback) override;
-    ndk::ScopedAStatus injectPsdsData(PsdsType psdsType,
-                                      const std::vector<uint8_t>& psdsData) override;
-
-  private:
-    // Guarded by mMutex
-    static std::shared_ptr<IGnssPsdsCallback> sCallback;
-
-    // Synchronization lock for sCallback
-    mutable std::mutex mMutex;
-};
-
-}  // namespace aidl::android::hardware::gnss
diff --git a/hal/gnss/aidl/gnss-trout.rc b/hal/gnss/aidl/gnss-trout.rc
deleted file mode 100644
index 9d3f070..0000000
--- a/hal/gnss/aidl/gnss-trout.rc
+++ /dev/null
@@ -1,4 +0,0 @@
-service vendor.gnss-default /vendor/bin/hw/android.hardware.gnss-service.trout
-    class hal
-    user nobody
-    group nobody
diff --git a/hal/gnss/aidl/gnss-trout.xml b/hal/gnss/aidl/gnss-trout.xml
deleted file mode 100644
index 2b06cd2..0000000
--- a/hal/gnss/aidl/gnss-trout.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<manifest version="1.0" type="device">
-    <hal format="aidl">
-        <name>android.hardware.gnss</name>
-        <interface>
-            <name>IGnss</name>
-            <instance>default</instance>
-        </interface>
-    </hal>
-</manifest>
diff --git a/hal/gnss/aidl/gnss@2.1-trout-service.xml b/hal/gnss/aidl/gnss@2.1-trout-service.xml
deleted file mode 100644
index 12a1fdf..0000000
--- a/hal/gnss/aidl/gnss@2.1-trout-service.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<manifest version="1.0" type="device">
-    <hal format="hidl">
-        <name>android.hardware.gnss</name>
-        <transport>hwbinder</transport>
-        <version>2.1</version>
-        <version>1.1</version>
-        <interface>
-            <name>IGnss</name>
-            <instance>default</instance>
-        </interface>
-    </hal>
-</manifest>
diff --git a/hal/gnss/aidl/service.cpp b/hal/gnss/aidl/service.cpp
deleted file mode 100644
index 09f1ad2..0000000
--- a/hal/gnss/aidl/service.cpp
+++ /dev/null
@@ -1,58 +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.
- */
-
-#define LOG_TAG "Gnss-main"
-
-#include <android-base/logging.h>
-#include <android/binder_manager.h>
-#include <android/binder_process.h>
-#include <hidl/HidlSupport.h>
-#include <hidl/HidlTransportSupport.h>
-#include <log/log.h>
-#include <pthread.h>
-#include "Gnss.h"
-#include "GnssHidlHal.h"
-
-using aidl::android::hardware::gnss::Gnss;
-using aidl::android::hardware::gnss::GnssHidlHal;
-using ::android::OK;
-using ::android::sp;
-using ::android::hardware::configureRpcThreadpool;
-using ::android::hardware::joinRpcThreadpool;
-using ::android::hardware::gnss::V2_1::IGnss;
-
-int main() {
-    ABinderProcess_setThreadPoolMaxThreadCount(1);
-    ABinderProcess_startThreadPool();
-
-    std::shared_ptr<Gnss> gnssAidl = ndk::SharedRefBase::make<Gnss>();
-    const std::string instance = std::string() + Gnss::descriptor + "/default";
-    binder_status_t status =
-            AServiceManager_addService(gnssAidl->asBinder().get(), instance.c_str());
-    CHECK(status == STATUS_OK);
-
-    sp<IGnss> gnss = new GnssHidlHal(gnssAidl);
-    configureRpcThreadpool(1, true /* will join */);
-    if (gnss->registerAsService() != OK) {
-        ALOGE("Could not register gnss 2.1 service.");
-        return 0;
-    }
-
-    joinRpcThreadpool();
-    ABinderProcess_joinThreadPool();
-
-    return EXIT_FAILURE;  // should not reach
-}
diff --git a/hal/gnss/common/utils/Android.bp b/hal/gnss/common/utils/Android.bp
deleted file mode 100644
index e402e7b..0000000
--- a/hal/gnss/common/utils/Android.bp
+++ /dev/null
@@ -1,52 +0,0 @@
-//
-// Copyright (C) 2019 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 {
-    default_applicable_licenses: ["Android-Apache-2.0"],
-}
-
-cc_library_static {
-    name: "android.hardware.gnss@trout-common-default-lib",
-    vendor_available: true,
-    relative_install_path: "hw",
-    cflags: [
-        "-Wall",
-        "-Wextra",
-        "-Werror",
-    ],
-    srcs: [
-        "v2_1/GnssAntennaInfo.cpp",
-        "v2_1/GnssConfiguration.cpp",
-        "v2_1/GnssDebug.cpp",
-        "v2_1/GnssMeasurement.cpp",
-        "v2_1/GnssMeasurementCorrections.cpp",
-        "MockLocation.cpp",
-        "Utils.cpp",
-        "NmeaFixInfo.cpp",
-    ],
-    export_include_dirs: ["include"],
-    shared_libs: [
-        "libcutils",
-        "libhidlbase",
-        "libutils",
-        "android.hardware.gnss@1.0",
-        "android.hardware.gnss@2.0",
-        "android.hardware.gnss@2.1",
-        "android.hardware.gnss.measurement_corrections@1.1",
-        "android.hardware.gnss.measurement_corrections@1.0",
-        "android.hardware.gnss-V1-ndk_platform",
-    ],
-}
diff --git a/hal/gnss/common/utils/MockLocation.cpp b/hal/gnss/common/utils/MockLocation.cpp
deleted file mode 100644
index c90075f..0000000
--- a/hal/gnss/common/utils/MockLocation.cpp
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright (C) 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.
- */
-
-#include "MockLocation.h"
-
-namespace android::hardware::gnss::common {
-
-float gMockLatitudeDegrees{37.4219999};
-float gMockLongitudeDegrees{-122.0840575};
-float gMockAltitudeMeters{1.60062531};
-float gMockBearingDegrees{0};
-float gMockSpeedMetersPerSec{0};
-
-}  // namespace android::hardware::gnss::common
diff --git a/hal/gnss/common/utils/NmeaFixInfo.cpp b/hal/gnss/common/utils/NmeaFixInfo.cpp
deleted file mode 100644
index c7ee134..0000000
--- a/hal/gnss/common/utils/NmeaFixInfo.cpp
+++ /dev/null
@@ -1,273 +0,0 @@
-/*
- * Copyright (C) 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.
- */
-
-#define LOG_TAG "NmeaFixInfo"
-
-#include <Constants.h>
-#include <NmeaFixInfo.h>
-#include <Utils.h>
-#include <log/log.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <unistd.h>
-#include <utils/SystemClock.h>
-#include <limits>
-#include <sstream>
-#include <string>
-#include <vector>
-
-namespace android {
-namespace hardware {
-namespace gnss {
-namespace common {
-
-NmeaFixInfo::NmeaFixInfo() : hasGMCRecord(false), hasGGARecord(false) {}
-
-float NmeaFixInfo::getAltitudeMeters() const {
-    return altitudeMeters;
-}
-
-float NmeaFixInfo::checkAndConvertToFloat(const std::string& sentence) {
-    if (sentence.empty()) {
-        return std::numeric_limits<float>::quiet_NaN();
-    }
-    return std::stof(sentence);
-}
-
-float NmeaFixInfo::getBearingAccuracyDegrees() const {
-    // Current NMEA doesn't contains beaing accuracy inforamtion
-    return kMockBearingAccuracyDegrees;
-}
-float NmeaFixInfo::getBearingDegrees() const {
-    return bearingDegrees;
-}
-
-float NmeaFixInfo::getHorizontalAccuracyMeters() const {
-    // Current NMEA doesn't contains horizontal accuracy inforamtion
-    return kMockHorizontalAccuracyMeters;
-}
-
-float NmeaFixInfo::getLatDeg() const {
-    return latDeg;
-}
-
-float NmeaFixInfo::getLngDeg() const {
-    return lngDeg;
-}
-
-float NmeaFixInfo::getSpeedAccuracyMetersPerSecond() const {
-    // Current NMEA doesn't contains speed accuracy inforamtion
-    return kMockSpeedAccuracyMetersPerSecond;
-}
-
-float NmeaFixInfo::getSpeedMetersPerSec() const {
-    return speedMetersPerSec;
-}
-
-int64_t NmeaFixInfo::getTimestamp() const {
-    return timestamp;
-}
-
-float NmeaFixInfo::getVerticalAccuracyMeters() const {
-    // Current NMEA doesn't contains vertical accuracy inforamtion
-    return kMockVerticalAccuracyMeters;
-}
-
-int64_t NmeaFixInfo::nmeaPartsToTimestamp(const std::string& timeStr, const std::string& dateStr) {
-    /**
-     * In NMEA format, the full time can only get from the $GPRMC record, see
-     * the following example:
-     * $GPRMC,213204.00,A,3725.371240,N,12205.589239,W,000.0,000.0,290819,,,A*49
-     * the datetime is stored in two parts, 213204 and 290819, which means
-     * 2019/08/29 21:32:04, however for in unix the year starts from 1900, we
-     * need to add the offset.
-     */
-    struct tm tm;
-    const int32_t unixYearOffset = 100;
-    tm.tm_mday = std::stoi(dateStr.substr(0, 2).c_str());
-    tm.tm_mon = std::stoi(dateStr.substr(2, 2).c_str()) - 1;
-    tm.tm_year = std::stoi(dateStr.substr(4, 2).c_str()) + unixYearOffset;
-    tm.tm_hour = std::stoi(timeStr.substr(0, 2).c_str());
-    tm.tm_min = std::stoi(timeStr.substr(2, 2).c_str());
-    tm.tm_sec = std::stoi(timeStr.substr(4, 2).c_str());
-    return static_cast<int64_t>(mktime(&tm) - timezone);
-}
-
-bool NmeaFixInfo::isValidFix() const {
-    return hasGMCRecord && hasGGARecord;
-}
-
-void NmeaFixInfo::parseGGALine(const std::vector<std::string>& sentenceValues) {
-    if (sentenceValues.size() == 0 || sentenceValues[0].compare(GPGA_RECORD_TAG) != 0) {
-        return;
-    }
-    // LatDeg, need covert to degree, if it is 'N', should be negative value
-    this->latDeg = std::stof(sentenceValues[2].substr(0, 2)) +
-                   (std::stof(sentenceValues[2].substr(2)) / 60.0);
-    if (sentenceValues[3].compare("N") != 0) {
-        this->latDeg *= -1;
-    }
-
-    // LngDeg, need covert to degree, if it is 'E', should be negative value
-    this->lngDeg = std::stof(sentenceValues[4].substr(0, 3)) +
-                   std::stof(sentenceValues[4].substr(3)) / 60.0;
-    if (sentenceValues[5].compare("E") != 0) {
-        this->lngDeg *= -1;
-    }
-
-    this->altitudeMeters = std::stof(sentenceValues[9]);
-
-    this->hDop = sentenceValues[8].empty() ? std::numeric_limits<float>::quiet_NaN()
-                                           : std::stof(sentenceValues[8]);
-    this->hasGGARecord = true;
-}
-
-void NmeaFixInfo::parseRMCLine(const std::vector<std::string>& sentenceValues) {
-    if (sentenceValues.size() == 0 || sentenceValues[0].compare(GPRMC_RECORD_TAG) != 0) {
-        return;
-    }
-    this->speedMetersPerSec = checkAndConvertToFloat(sentenceValues[7]);
-    this->bearingDegrees = checkAndConvertToFloat(sentenceValues[8]);
-    this->timestamp = nmeaPartsToTimestamp(sentenceValues[1], sentenceValues[9]);
-    this->hasGMCRecord = true;
-}
-
-/** invalid the current NmeaFixInfo */
-void NmeaFixInfo::reset() {
-    this->altitudeMeters = 0;
-    this->bearingDegrees = 0;
-    this->fixId = 0;
-    this->hasGMCRecord = false;
-    this->hasGGARecord = false;
-    this->latDeg = 0;
-    this->lngDeg = 0;
-    this->hDop = 0;
-    this->vDop = 0;
-    this->satelliteCount = 0;
-    this->speedMetersPerSec = 0;
-    this->timestamp = 0;
-}
-
-void NmeaFixInfo::splitStr(const std::string& line, const char& delimiter,
-                           std::vector<std::string>& out) {
-    std::istringstream iss(line);
-    std::string item;
-    while (std::getline(iss, item, delimiter)) {
-        out.push_back(item);
-    }
-}
-
-NmeaFixInfo& NmeaFixInfo::operator=(const NmeaFixInfo& rhs) {
-    if (this == &rhs) return *this;
-    this->altitudeMeters = rhs.altitudeMeters;
-    this->bearingDegrees = rhs.bearingDegrees;
-    this->fixId = rhs.fixId;
-    this->hasGMCRecord = rhs.hasGMCRecord;
-    this->hasGGARecord = rhs.hasGGARecord;
-    this->hDop = rhs.hDop;
-    this->vDop = rhs.vDop;
-    this->latDeg = rhs.latDeg;
-    this->lngDeg = rhs.lngDeg;
-    this->satelliteCount = rhs.satelliteCount;
-    this->speedMetersPerSec = rhs.speedMetersPerSec;
-    this->timestamp = rhs.timestamp;
-
-    return *this;
-}
-
-/**
- * Parses the input string in NMEA format and convert to GnssLocation.
- * Currently version only cares about $GPGGA and $GPRMC records. but we
- * can easily extend to other types supported by NMEA if needed.
- */
-std::unique_ptr<V2_0::GnssLocation> NmeaFixInfo::getLocationFromInputStr(
-        const std::string& inputStr) {
-    std::vector<std::string> nmeaRecords;
-    splitStr(inputStr, LINE_SEPARATOR, nmeaRecords);
-    NmeaFixInfo nmeaFixInfo;
-    NmeaFixInfo candidateFixInfo;
-    uint32_t fixId = 0;
-    double lastTimeStamp = 0;
-    for (const auto& line : nmeaRecords) {
-        if (line.compare(0, strlen(GPGA_RECORD_TAG), GPGA_RECORD_TAG) != 0 &&
-            line.compare(0, strlen(GPRMC_RECORD_TAG), GPRMC_RECORD_TAG) != 0) {
-            continue;
-        }
-        std::vector<std::string> sentenceValues;
-        splitStr(line, COMMA_SEPARATOR, sentenceValues);
-        if (sentenceValues.size() < MIN_COL_NUM) {
-            continue;
-        }
-        double currentTimeStamp = std::stof(sentenceValues[1]);
-        // If see a new timestamp, report correct location.
-        if ((currentTimeStamp - lastTimeStamp) > TIMESTAMP_EPSILON &&
-            candidateFixInfo.isValidFix()) {
-            nmeaFixInfo = candidateFixInfo;
-            candidateFixInfo.reset();
-            fixId++;
-        }
-        if (line.compare(0, strlen(GPGA_RECORD_TAG), GPGA_RECORD_TAG) == 0) {
-            candidateFixInfo.fixId = fixId;
-            candidateFixInfo.parseGGALine(sentenceValues);
-        } else if (line.compare(0, strlen(GPRMC_RECORD_TAG), GPRMC_RECORD_TAG) == 0) {
-            candidateFixInfo.parseRMCLine(sentenceValues);
-        }
-    }
-    if (candidateFixInfo.isValidFix()) {
-        nmeaFixInfo = candidateFixInfo;
-        candidateFixInfo.reset();
-    }
-    if (!nmeaFixInfo.isValidFix()) {
-        return nullptr;
-    }
-    return nmeaFixInfo.toGnssLocation();
-}
-
-/**
- * Parses the input string in NMEA format and convert to GnssLocation.
- */
-std::unique_ptr<V2_0::GnssLocation> NmeaFixInfo::toGnssLocation() const {
-    const V2_0::ElapsedRealtime currentOsTimestamp = {
-            .flags = V2_0::ElapsedRealtimeFlags::HAS_TIMESTAMP_NS |
-                     V2_0::ElapsedRealtimeFlags::HAS_TIME_UNCERTAINTY_NS,
-            .timestampNs = static_cast<uint64_t>(::android::elapsedRealtimeNano()),
-            // This is an hardcoded value indicating a 1ms of uncertainty between the two clocks.
-            // In an actual implementation provide an estimate of the synchronization uncertainty
-            // or don't set the field.
-            .timeUncertaintyNs = 1000000};
-
-    V1_0::GnssLocation locationV1 = {
-            .gnssLocationFlags = 0xFF,
-            .latitudeDegrees = this->getLatDeg(),
-            .longitudeDegrees = this->getLngDeg(),
-            .altitudeMeters = this->getAltitudeMeters(),
-            .speedMetersPerSec = this->getSpeedMetersPerSec(),
-            .bearingDegrees = this->getBearingDegrees(),
-            .horizontalAccuracyMeters = this->getHorizontalAccuracyMeters(),
-            .verticalAccuracyMeters = this->getVerticalAccuracyMeters(),
-            .speedAccuracyMetersPerSecond = this->getSpeedAccuracyMetersPerSecond(),
-            .bearingAccuracyDegrees = this->getBearingAccuracyDegrees(),
-            .timestamp = this->getTimestamp()};
-
-    V2_0::GnssLocation locationV2 = {.v1_0 = locationV1, .elapsedRealtime = currentOsTimestamp};
-
-    return std::make_unique<V2_0::GnssLocation>(locationV2);
-}
-
-}  // namespace common
-}  // namespace gnss
-}  // namespace hardware
-}  // namespace android
\ No newline at end of file
diff --git a/hal/gnss/common/utils/Utils.cpp b/hal/gnss/common/utils/Utils.cpp
deleted file mode 100644
index 23e39b2..0000000
--- a/hal/gnss/common/utils/Utils.cpp
+++ /dev/null
@@ -1,405 +0,0 @@
-/*
- * Copyright (C) 2019 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.
- */
-
-#include <Constants.h>
-#include <MockLocation.h>
-#include <Utils.h>
-#include <aidl/android/hardware/gnss/BnGnss.h>
-#include <utils/SystemClock.h>
-
-namespace android {
-namespace hardware {
-namespace gnss {
-namespace common {
-
-using aidl::android::hardware::gnss::ElapsedRealtime;
-using aidl::android::hardware::gnss::GnssClock;
-using aidl::android::hardware::gnss::GnssData;
-using aidl::android::hardware::gnss::GnssMeasurement;
-using aidl::android::hardware::gnss::IGnss;
-using aidl::android::hardware::gnss::IGnssMeasurementCallback;
-using aidl::android::hardware::gnss::SatellitePvt;
-
-using GnssSvFlags = V1_0::IGnssCallback::GnssSvFlags;
-using GnssMeasurementFlagsV1_0 = V1_0::IGnssMeasurementCallback::GnssMeasurementFlags;
-using GnssMeasurementFlagsV2_1 = V2_1::IGnssMeasurementCallback::GnssMeasurementFlags;
-using GnssMeasurementStateV2_0 = V2_0::IGnssMeasurementCallback::GnssMeasurementState;
-using ElapsedRealtimeFlags = V2_0::ElapsedRealtimeFlags;
-using GnssConstellationTypeV2_0 = V2_0::GnssConstellationType;
-using IGnssMeasurementCallbackV2_0 = V2_0::IGnssMeasurementCallback;
-using GnssSignalType = V2_1::GnssSignalType;
-
-using GnssDataV2_0 = V2_0::IGnssMeasurementCallback::GnssData;
-using GnssDataV2_1 = V2_1::IGnssMeasurementCallback::GnssData;
-using GnssSvInfoV1_0 = V1_0::IGnssCallback::GnssSvInfo;
-using GnssSvInfoV2_0 = V2_0::IGnssCallback::GnssSvInfo;
-using GnssSvInfoV2_1 = V2_1::IGnssCallback::GnssSvInfo;
-using GnssAntennaInfo = ::android::hardware::gnss::V2_1::IGnssAntennaInfoCallback::GnssAntennaInfo;
-using Row = V2_1::IGnssAntennaInfoCallback::Row;
-using Coord = V2_1::IGnssAntennaInfoCallback::Coord;
-
-GnssDataV2_1 Utils::getMockMeasurementV2_1() {
-    GnssDataV2_0 gnssDataV2_0 = Utils::getMockMeasurementV2_0();
-    V2_1::IGnssMeasurementCallback::GnssMeasurement gnssMeasurementV2_1 = {
-            .v2_0 = gnssDataV2_0.measurements[0],
-            .flags = (uint32_t)(GnssMeasurementFlagsV2_1::HAS_CARRIER_FREQUENCY |
-                                GnssMeasurementFlagsV2_1::HAS_CARRIER_PHASE |
-                                GnssMeasurementFlagsV2_1::HAS_FULL_ISB |
-                                GnssMeasurementFlagsV2_1::HAS_FULL_ISB_UNCERTAINTY |
-                                GnssMeasurementFlagsV2_1::HAS_SATELLITE_ISB |
-                                GnssMeasurementFlagsV2_1::HAS_SATELLITE_ISB_UNCERTAINTY),
-            .fullInterSignalBiasNs = 30.0,
-            .fullInterSignalBiasUncertaintyNs = 250.0,
-            .satelliteInterSignalBiasNs = 20.0,
-            .satelliteInterSignalBiasUncertaintyNs = 150.0,
-            .basebandCN0DbHz = 25.0,
-    };
-    GnssSignalType referenceSignalTypeForIsb = {
-            .constellation = GnssConstellationTypeV2_0::GPS,
-            .carrierFrequencyHz = 1.59975e+09,
-            .codeType = "C",
-    };
-    V2_1::IGnssMeasurementCallback::GnssClock gnssClockV2_1 = {
-            .v1_0 = gnssDataV2_0.clock,
-            .referenceSignalTypeForIsb = referenceSignalTypeForIsb,
-    };
-    hidl_vec<V2_1::IGnssMeasurementCallback::GnssMeasurement> measurements(1);
-    measurements[0] = gnssMeasurementV2_1;
-    GnssDataV2_1 gnssDataV2_1 = {
-            .measurements = measurements,
-            .clock = gnssClockV2_1,
-            .elapsedRealtime = gnssDataV2_0.elapsedRealtime,
-    };
-    return gnssDataV2_1;
-}
-
-GnssDataV2_0 Utils::getMockMeasurementV2_0() {
-    V1_0::IGnssMeasurementCallback::GnssMeasurement measurement_1_0 = {
-            .flags = (uint32_t)GnssMeasurementFlagsV1_0::HAS_CARRIER_FREQUENCY,
-            .svid = (int16_t)6,
-            .constellation = V1_0::GnssConstellationType::UNKNOWN,
-            .timeOffsetNs = 0.0,
-            .receivedSvTimeInNs = 8195997131077,
-            .receivedSvTimeUncertaintyInNs = 15,
-            .cN0DbHz = 30.0,
-            .pseudorangeRateMps = -484.13739013671875,
-            .pseudorangeRateUncertaintyMps = 1.0379999876022339,
-            .accumulatedDeltaRangeState = (uint32_t)V1_0::IGnssMeasurementCallback::
-                    GnssAccumulatedDeltaRangeState::ADR_STATE_UNKNOWN,
-            .accumulatedDeltaRangeM = 0.0,
-            .accumulatedDeltaRangeUncertaintyM = 0.0,
-            .carrierFrequencyHz = 1.59975e+09,
-            .multipathIndicator =
-                    V1_0::IGnssMeasurementCallback::GnssMultipathIndicator::INDICATOR_UNKNOWN};
-    V1_1::IGnssMeasurementCallback::GnssMeasurement measurement_1_1 = {.v1_0 = measurement_1_0};
-    V2_0::IGnssMeasurementCallback::GnssMeasurement measurement_2_0 = {
-            .v1_1 = measurement_1_1,
-            .codeType = "C",
-            .state = GnssMeasurementStateV2_0::STATE_CODE_LOCK |
-                     GnssMeasurementStateV2_0::STATE_BIT_SYNC |
-                     GnssMeasurementStateV2_0::STATE_SUBFRAME_SYNC |
-                     GnssMeasurementStateV2_0::STATE_TOW_DECODED |
-                     GnssMeasurementStateV2_0::STATE_GLO_STRING_SYNC |
-                     GnssMeasurementStateV2_0::STATE_GLO_TOD_DECODED,
-            .constellation = GnssConstellationTypeV2_0::GLONASS,
-    };
-
-    hidl_vec<IGnssMeasurementCallbackV2_0::GnssMeasurement> measurements(1);
-    measurements[0] = measurement_2_0;
-    V1_0::IGnssMeasurementCallback::GnssClock clock = {.timeNs = 2713545000000,
-                                                       .fullBiasNs = -1226701900521857520,
-                                                       .biasNs = 0.59689998626708984,
-                                                       .biasUncertaintyNs = 47514.989972114563,
-                                                       .driftNsps = -51.757811607455452,
-                                                       .driftUncertaintyNsps = 310.64968328491528,
-                                                       .hwClockDiscontinuityCount = 1};
-
-    V2_0::ElapsedRealtime timestamp = {
-            .flags = ElapsedRealtimeFlags::HAS_TIMESTAMP_NS |
-                     ElapsedRealtimeFlags::HAS_TIME_UNCERTAINTY_NS,
-            .timestampNs = static_cast<uint64_t>(::android::elapsedRealtimeNano()),
-            // This is an hardcoded value indicating a 1ms of uncertainty between the two clocks.
-            // In an actual implementation provide an estimate of the synchronization uncertainty
-            // or don't set the field.
-            .timeUncertaintyNs = 1000000};
-
-    GnssDataV2_0 gnssData = {
-            .measurements = measurements, .clock = clock, .elapsedRealtime = timestamp};
-    return gnssData;
-}
-
-GnssData Utils::getMockMeasurement(const bool enableCorrVecOutputs) {
-    aidl::android::hardware::gnss::GnssSignalType signalType = {
-            .constellation = aidl::android::hardware::gnss::GnssConstellationType::GLONASS,
-            .carrierFrequencyHz = 1.59975e+09,
-            .codeType = aidl::android::hardware::gnss::GnssSignalType::CODE_TYPE_C,
-    };
-    GnssMeasurement measurement = {
-            .flags = GnssMeasurement::HAS_AUTOMATIC_GAIN_CONTROL |
-                     GnssMeasurement::HAS_CARRIER_FREQUENCY | GnssMeasurement::HAS_CARRIER_PHASE |
-                     GnssMeasurement::HAS_CARRIER_PHASE_UNCERTAINTY |
-                     GnssMeasurement::HAS_FULL_ISB | GnssMeasurement::HAS_FULL_ISB_UNCERTAINTY |
-                     GnssMeasurement::HAS_SATELLITE_ISB |
-                     GnssMeasurement::HAS_SATELLITE_ISB_UNCERTAINTY |
-                     GnssMeasurement::HAS_SATELLITE_PVT,
-            .svid = 13,
-            .signalType = signalType,
-            .receivedSvTimeInNs = 8195997131077,
-            .receivedSvTimeUncertaintyInNs = 15,
-            .antennaCN0DbHz = 30.0,
-            .basebandCN0DbHz = 26.5,
-            .agcLevelDb = 2.3,
-            .pseudorangeRateMps = -484.13739013671875,
-            .pseudorangeRateUncertaintyMps = 1.0379999876022339,
-            .accumulatedDeltaRangeState = GnssMeasurement::ADR_STATE_UNKNOWN,
-            .accumulatedDeltaRangeM = 1.52,
-            .accumulatedDeltaRangeUncertaintyM = 2.43,
-            .multipathIndicator = aidl::android::hardware::gnss::GnssMultipathIndicator::UNKNOWN,
-            .state = GnssMeasurement::STATE_CODE_LOCK | GnssMeasurement::STATE_BIT_SYNC |
-                     GnssMeasurement::STATE_SUBFRAME_SYNC | GnssMeasurement::STATE_TOW_DECODED |
-                     GnssMeasurement::STATE_GLO_STRING_SYNC |
-                     GnssMeasurement::STATE_GLO_TOD_DECODED,
-            .fullInterSignalBiasNs = 21.5,
-            .fullInterSignalBiasUncertaintyNs = 792.0,
-            .satelliteInterSignalBiasNs = 233.9,
-            .satelliteInterSignalBiasUncertaintyNs = 921.2,
-            .satellitePvt = {.flags = SatellitePvt::HAS_POSITION_VELOCITY_CLOCK_INFO |
-                                      SatellitePvt::HAS_IONO | SatellitePvt::HAS_TROPO,
-                             .satPosEcef = {.posXMeters = 10442993.1153328,
-                                            .posYMeters = -19926932.8051666,
-                                            .posZMeters = -12034295.0216203,
-                                            .ureMeters = 1000.2345678},
-                             .satVelEcef = {.velXMps = -478.667183715732,
-                                            .velYMps = 1580.68371984114,
-                                            .velZMps = -3030.52994449997,
-                                            .ureRateMps = 10.2345678},
-                             .satClockInfo = {.satHardwareCodeBiasMeters = 1.396983861923e-09,
-                                              .satTimeCorrectionMeters = -7113.08964331,
-                                              .satClkDriftMps = 0},
-                             .ionoDelayMeters = 3.069949602639317e-08,
-                             .tropoDelayMeters = 3.882265204404031},
-            .correlationVectors = {}};
-
-    GnssClock clock = {.gnssClockFlags = GnssClock::HAS_FULL_BIAS | GnssClock::HAS_BIAS |
-                                         GnssClock::HAS_BIAS_UNCERTAINTY | GnssClock::HAS_DRIFT |
-                                         GnssClock::HAS_DRIFT_UNCERTAINTY,
-                       .timeNs = 35854545000000,
-                       .fullBiasNs = -234621900521857520,
-                       .biasNs = 0.2352389998626708984,
-                       .biasUncertaintyNs = 274.989972114563,
-                       .driftNsps = -124.3742360,
-                       .driftUncertaintyNsps = 239.6234285828,
-                       .hwClockDiscontinuityCount = 999};
-
-    ElapsedRealtime timestamp = {
-            .flags = ElapsedRealtime::HAS_TIMESTAMP_NS | ElapsedRealtime::HAS_TIME_UNCERTAINTY_NS,
-            .timestampNs = ::android::elapsedRealtimeNano(),
-            // This is an hardcoded value indicating a 1ms of uncertainty between the two clocks.
-            // In an actual implementation provide an estimate of the synchronization uncertainty
-            // or don't set the field.
-            .timeUncertaintyNs = 1020400};
-
-    if (enableCorrVecOutputs) {
-        aidl::android::hardware::gnss::CorrelationVector correlationVector1 = {
-                .frequencyOffsetMps = 10,
-                .samplingWidthM = 30,
-                .samplingStartM = 0,
-                .magnitude = {0, 5000, 10000, 5000, 0, 0, 3000, 0}};
-        aidl::android::hardware::gnss::CorrelationVector correlationVector2 = {
-                .frequencyOffsetMps = 20,
-                .samplingWidthM = 30,
-                .samplingStartM = -10,
-                .magnitude = {0, 3000, 5000, 3000, 0, 0, 1000, 0}};
-        measurement.correlationVectors = {correlationVector1, correlationVector2};
-        measurement.flags |= GnssMeasurement::HAS_CORRELATION_VECTOR;
-    }
-
-    GnssData gnssData = {
-            .measurements = {measurement}, .clock = clock, .elapsedRealtime = timestamp};
-    return gnssData;
-}
-
-V2_0::GnssLocation Utils::getMockLocationV2_0() {
-    const V2_0::ElapsedRealtime timestamp = {
-            .flags = V2_0::ElapsedRealtimeFlags::HAS_TIMESTAMP_NS |
-                     V2_0::ElapsedRealtimeFlags::HAS_TIME_UNCERTAINTY_NS,
-            .timestampNs = static_cast<uint64_t>(::android::elapsedRealtimeNano()),
-            // This is an hardcoded value indicating a 1ms of uncertainty between the two clocks.
-            // In an actual implementation provide an estimate of the synchronization uncertainty
-            // or don't set the field.
-            .timeUncertaintyNs = 1000000};
-
-    V2_0::GnssLocation location = {.v1_0 = Utils::getMockLocationV1_0(),
-                                   .elapsedRealtime = timestamp};
-    return location;
-}
-
-V1_0::GnssLocation Utils::getMockLocationV1_0() {
-    V1_0::GnssLocation location = {
-            .gnssLocationFlags = 0xFF,
-            .latitudeDegrees = gMockLatitudeDegrees,
-            .longitudeDegrees = gMockLongitudeDegrees,
-            .altitudeMeters = gMockAltitudeMeters,
-            .speedMetersPerSec = gMockSpeedMetersPerSec,
-            .bearingDegrees = gMockBearingDegrees,
-            .horizontalAccuracyMeters = kMockHorizontalAccuracyMeters,
-            .verticalAccuracyMeters = kMockVerticalAccuracyMeters,
-            .speedAccuracyMetersPerSecond = kMockSpeedAccuracyMetersPerSecond,
-            .bearingAccuracyDegrees = kMockBearingAccuracyDegrees,
-            .timestamp =
-                    static_cast<int64_t>(kMockTimestamp + ::android::elapsedRealtimeNano() / 1e6)};
-    return location;
-}
-
-hidl_vec<GnssSvInfoV2_1> Utils::getMockSvInfoListV2_1() {
-    GnssSvInfoV1_0 gnssSvInfoV1_0 = Utils::getMockSvInfoV1_0(3, V1_0::GnssConstellationType::GPS,
-                                                             32.5, 59.1, 166.5, kGpsL1FreqHz);
-    GnssSvInfoV2_0 gnssSvInfoV2_0 =
-            Utils::getMockSvInfoV2_0(gnssSvInfoV1_0, V2_0::GnssConstellationType::GPS);
-    hidl_vec<GnssSvInfoV2_1> gnssSvInfoList = {
-            Utils::getMockSvInfoV2_1(gnssSvInfoV2_0, 27.5),
-            getMockSvInfoV2_1(
-                    getMockSvInfoV2_0(getMockSvInfoV1_0(5, V1_0::GnssConstellationType::GPS, 27.0,
-                                                        29.0, 56.5, kGpsL1FreqHz),
-                                      V2_0::GnssConstellationType::GPS),
-                    22.0),
-            getMockSvInfoV2_1(
-                    getMockSvInfoV2_0(getMockSvInfoV1_0(17, V1_0::GnssConstellationType::GPS, 30.5,
-                                                        71.0, 77.0, kGpsL5FreqHz),
-                                      V2_0::GnssConstellationType::GPS),
-                    25.5),
-            getMockSvInfoV2_1(
-                    getMockSvInfoV2_0(getMockSvInfoV1_0(26, V1_0::GnssConstellationType::GPS, 24.1,
-                                                        28.0, 253.0, kGpsL5FreqHz),
-                                      V2_0::GnssConstellationType::GPS),
-                    19.1),
-            getMockSvInfoV2_1(
-                    getMockSvInfoV2_0(getMockSvInfoV1_0(5, V1_0::GnssConstellationType::GLONASS,
-                                                        20.5, 11.5, 116.0, kGloG1FreqHz),
-                                      V2_0::GnssConstellationType::GLONASS),
-                    15.5),
-            getMockSvInfoV2_1(
-                    getMockSvInfoV2_0(getMockSvInfoV1_0(17, V1_0::GnssConstellationType::GLONASS,
-                                                        21.5, 28.5, 186.0, kGloG1FreqHz),
-                                      V2_0::GnssConstellationType::GLONASS),
-                    16.5),
-            getMockSvInfoV2_1(
-                    getMockSvInfoV2_0(getMockSvInfoV1_0(18, V1_0::GnssConstellationType::GLONASS,
-                                                        28.3, 38.8, 69.0, kGloG1FreqHz),
-                                      V2_0::GnssConstellationType::GLONASS),
-                    25.3),
-            getMockSvInfoV2_1(
-                    getMockSvInfoV2_0(getMockSvInfoV1_0(10, V1_0::GnssConstellationType::GLONASS,
-                                                        25.0, 66.0, 247.0, kGloG1FreqHz),
-                                      V2_0::GnssConstellationType::GLONASS),
-                    20.0),
-            getMockSvInfoV2_1(
-                    getMockSvInfoV2_0(getMockSvInfoV1_0(3, V1_0::GnssConstellationType::UNKNOWN,
-                                                        22.0, 35.0, 112.0, kIrnssL5FreqHz),
-                                      V2_0::GnssConstellationType::IRNSS),
-                    19.7),
-    };
-    return gnssSvInfoList;
-}
-
-GnssSvInfoV2_1 Utils::getMockSvInfoV2_1(GnssSvInfoV2_0 gnssSvInfoV2_0, float basebandCN0DbHz) {
-    GnssSvInfoV2_1 gnssSvInfoV2_1 = {
-            .v2_0 = gnssSvInfoV2_0,
-            .basebandCN0DbHz = basebandCN0DbHz,
-    };
-    return gnssSvInfoV2_1;
-}
-
-GnssSvInfoV2_0 Utils::getMockSvInfoV2_0(GnssSvInfoV1_0 gnssSvInfoV1_0,
-                                        V2_0::GnssConstellationType type) {
-    GnssSvInfoV2_0 gnssSvInfoV2_0 = {
-            .v1_0 = gnssSvInfoV1_0,
-            .constellation = type,
-    };
-    return gnssSvInfoV2_0;
-}
-
-GnssSvInfoV1_0 Utils::getMockSvInfoV1_0(int16_t svid, V1_0::GnssConstellationType type,
-                                        float cN0DbHz, float elevationDegrees, float azimuthDegrees,
-                                        float carrierFrequencyHz) {
-    GnssSvInfoV1_0 svInfo = {.svid = svid,
-                             .constellation = type,
-                             .cN0Dbhz = cN0DbHz,
-                             .elevationDegrees = elevationDegrees,
-                             .azimuthDegrees = azimuthDegrees,
-                             .carrierFrequencyHz = carrierFrequencyHz,
-                             .svFlag = GnssSvFlags::USED_IN_FIX | GnssSvFlags::HAS_EPHEMERIS_DATA |
-                                       GnssSvFlags::HAS_ALMANAC_DATA |
-                                       GnssSvFlags::HAS_CARRIER_FREQUENCY};
-    return svInfo;
-}
-
-hidl_vec<GnssAntennaInfo> Utils::getMockAntennaInfos() {
-    GnssAntennaInfo mockAntennaInfo_1 = {
-            .carrierFrequencyMHz = kGpsL1FreqHz * 1e-6,
-            .phaseCenterOffsetCoordinateMillimeters = Coord{.x = 1,
-                                                            .xUncertainty = 0.1,
-                                                            .y = 2,
-                                                            .yUncertainty = 0.1,
-                                                            .z = 3,
-                                                            .zUncertainty = 0.1},
-            .phaseCenterVariationCorrectionMillimeters =
-                    {
-                            Row{hidl_vec<double>{1, -1, 5, -2, 3, -1}},
-                            Row{hidl_vec<double>{-2, 3, 2, 0, 1, 2}},
-                            Row{hidl_vec<double>{1, 3, 2, -1, -3, 5}},
-                    },
-            .phaseCenterVariationCorrectionUncertaintyMillimeters =
-                    {
-                            Row{hidl_vec<double>{0.1, 0.2, 0.4, 0.1, 0.2, 0.3}},
-                            Row{hidl_vec<double>{0.3, 0.2, 0.3, 0.6, 0.1, 0.1}},
-                            Row{hidl_vec<double>{0.1, 0.1, 0.4, 0.2, 0.5, 0.3}},
-                    },
-            .signalGainCorrectionDbi =
-                    {
-                            Row{hidl_vec<double>{2, -3, 1, -3, 0, -4}},
-                            Row{hidl_vec<double>{1, 0, -4, 1, 3, -2}},
-                            Row{hidl_vec<double>{3, -2, 0, -2, 3, 0}},
-                    },
-            .signalGainCorrectionUncertaintyDbi =
-                    {
-                            Row{hidl_vec<double>{0.3, 0.1, 0.2, 0.6, 0.1, 0.3}},
-                            Row{hidl_vec<double>{0.1, 0.1, 0.5, 0.2, 0.3, 0.1}},
-                            Row{hidl_vec<double>{0.2, 0.4, 0.2, 0.1, 0.1, 0.2}},
-                    },
-    };
-
-    GnssAntennaInfo mockAntennaInfo_2 = {
-            .carrierFrequencyMHz = kGpsL5FreqHz * 1e-6,
-            .phaseCenterOffsetCoordinateMillimeters = Coord{.x = 5,
-                                                            .xUncertainty = 0.1,
-                                                            .y = 6,
-                                                            .yUncertainty = 0.1,
-                                                            .z = 7,
-                                                            .zUncertainty = 0.1},
-    };
-
-    hidl_vec<GnssAntennaInfo> mockAntennaInfos = {
-            mockAntennaInfo_1,
-            mockAntennaInfo_2,
-    };
-    return mockAntennaInfos;
-}
-
-}  // namespace common
-}  // namespace gnss
-}  // namespace hardware
-}  // namespace android
diff --git a/hal/gnss/common/utils/include/Constants.h b/hal/gnss/common/utils/include/Constants.h
deleted file mode 100644
index 22afee1..0000000
--- a/hal/gnss/common/utils/include/Constants.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 2019 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.
- */
-
-#ifndef android_hardware_gnss_common_Constants_H_
-#define android_hardware_gnss_common_Constants_H_
-
-#include <cstdint>
-
-namespace android {
-namespace hardware {
-namespace gnss {
-namespace common {
-
-const float kMockHorizontalAccuracyMeters = 5;
-const float kMockVerticalAccuracyMeters = 5;
-const float kMockSpeedAccuracyMetersPerSecond = 1;
-const float kMockBearingAccuracyDegrees = 90;
-const int64_t kMockTimestamp = 1519930775453L;
-const float kGpsL1FreqHz = 1575.42 * 1e6;
-const float kGpsL5FreqHz = 1176.45 * 1e6;
-const float kGloG1FreqHz = 1602.0 * 1e6;
-const float kIrnssL5FreqHz = 1176.45 * 1e6;
-
-}  // namespace common
-}  // namespace gnss
-}  // namespace hardware
-}  // namespace android
-
-#endif  // android_hardware_gnss_common_Constants_H_
diff --git a/hal/gnss/common/utils/include/MockLocation.h b/hal/gnss/common/utils/include/MockLocation.h
deleted file mode 100644
index 0bfdd1a..0000000
--- a/hal/gnss/common/utils/include/MockLocation.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (C) 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.
- */
-
-#ifndef android_hardware_gnss_common_MockLocation_H_
-#define android_hardware_gnss_common_MockLocation_H_
-
-#include <cstdint>
-
-namespace android {
-namespace hardware {
-namespace gnss {
-namespace common {
-
-extern float gMockLatitudeDegrees;
-extern float gMockLongitudeDegrees;
-extern float gMockAltitudeMeters;
-extern float gMockBearingDegrees;
-extern float gMockSpeedMetersPerSec;
-
-}  // namespace common
-}  // namespace gnss
-}  // namespace hardware
-}  // namespace android
-
-#endif  // android_hardware_gnss_common_MockLocation_H_
diff --git a/hal/gnss/common/utils/include/NmeaFixInfo.h b/hal/gnss/common/utils/include/NmeaFixInfo.h
deleted file mode 100644
index c96eece..0000000
--- a/hal/gnss/common/utils/include/NmeaFixInfo.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Copyright (C) 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.
- */
-
-#pragma once
-
-#include <Constants.h>
-#include <android/hardware/gnss/1.0/IGnss.h>
-#include <android/hardware/gnss/2.0/IGnss.h>
-#include <hidl/Status.h>
-#include <ctime>
-#include <string>
-namespace android {
-namespace hardware {
-namespace gnss {
-namespace common {
-
-constexpr char GPGA_RECORD_TAG[] = "$GPGGA";
-constexpr char GPRMC_RECORD_TAG[] = "$GPRMC";
-constexpr char LINE_SEPARATOR = '\n';
-constexpr char COMMA_SEPARATOR = ',';
-constexpr double TIMESTAMP_EPSILON = 0.001;
-constexpr int MIN_COL_NUM = 13;
-
-/** Helper class to parse and store the GNSS fix details information. */
-class NmeaFixInfo {
-  private:
-    float altitudeMeters;
-    float bearingDegrees;
-    uint32_t fixId;
-    bool hasGMCRecord;
-    bool hasGGARecord;
-    float hDop;
-    float vDop;
-    float latDeg;
-    float lngDeg;
-    uint32_t satelliteCount;
-    float speedMetersPerSec;
-    int64_t timestamp;
-
-  public:
-    static std::unique_ptr<V2_0::GnssLocation> getLocationFromInputStr(const std::string& inputStr);
-
-  private:
-    static void splitStr(const std::string& line, const char& delimiter,
-                         std::vector<std::string>& out);
-    static float checkAndConvertToFloat(const std::string& sentence);
-    static int64_t nmeaPartsToTimestamp(const std::string& timeStr, const std::string& dateStr);
-
-    NmeaFixInfo();
-    void parseGGALine(const std::vector<std::string>& sentenceValues);
-    void parseRMCLine(const std::vector<std::string>& sentenceValues);
-    std::unique_ptr<V2_0::GnssLocation> toGnssLocation() const;
-
-    // Getters
-    float getAltitudeMeters() const;
-    float getBearingAccuracyDegrees() const;
-    float getBearingDegrees() const;
-    uint32_t getFixId() const;
-    float getHorizontalAccuracyMeters() const;
-    float getLatDeg() const;
-    float getLngDeg() const;
-    float getSpeedAccuracyMetersPerSecond() const;
-    float getSpeedMetersPerSec() const;
-    int64_t getTimestamp() const;
-    float getVerticalAccuracyMeters() const;
-
-    bool isValidFix() const;
-    void reset();
-    NmeaFixInfo& operator=(const NmeaFixInfo& rhs);
-};
-
-}  // namespace common
-}  // namespace gnss
-}  // namespace hardware
-}  // namespace android
\ No newline at end of file
diff --git a/hal/gnss/common/utils/include/Utils.h b/hal/gnss/common/utils/include/Utils.h
deleted file mode 100644
index 43772ce..0000000
--- a/hal/gnss/common/utils/include/Utils.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (C) 2019 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.
- */
-
-#ifndef android_hardware_gnss_common_default_Utils_H_
-#define android_hardware_gnss_common_default_Utils_H_
-
-#include <aidl/android/hardware/gnss/BnGnssMeasurementInterface.h>
-#include <android/hardware/gnss/1.0/IGnss.h>
-#include <android/hardware/gnss/2.0/IGnss.h>
-#include <android/hardware/gnss/2.1/IGnss.h>
-
-using ::android::hardware::hidl_vec;
-
-namespace android {
-namespace hardware {
-namespace gnss {
-namespace common {
-
-struct Utils {
-    static aidl::android::hardware::gnss::GnssData getMockMeasurement(
-            const bool enableCorrVecOutputs);
-    static V2_0::IGnssMeasurementCallback::GnssData getMockMeasurementV2_0();
-    static V2_1::IGnssMeasurementCallback::GnssData getMockMeasurementV2_1();
-    static V2_0::GnssLocation getMockLocationV2_0();
-    static V1_0::GnssLocation getMockLocationV1_0();
-    static hidl_vec<V2_1::IGnssCallback::GnssSvInfo> getMockSvInfoListV2_1();
-    static V2_1::IGnssCallback::GnssSvInfo getMockSvInfoV2_1(
-            V2_0::IGnssCallback::GnssSvInfo gnssSvInfoV2_0, float basebandCN0DbHz);
-    static V2_0::IGnssCallback::GnssSvInfo getMockSvInfoV2_0(
-            V1_0::IGnssCallback::GnssSvInfo gnssSvInfoV1_0, V2_0::GnssConstellationType type);
-    static V1_0::IGnssCallback::GnssSvInfo getMockSvInfoV1_0(int16_t svid,
-                                                             V1_0::GnssConstellationType type,
-                                                             float cN0DbHz, float elevationDegrees,
-                                                             float azimuthDegrees,
-                                                             float carrierFrequencyHz);
-    static hidl_vec<V2_1::IGnssAntennaInfoCallback::GnssAntennaInfo> getMockAntennaInfos();
-};
-
-}  // namespace common
-}  // namespace gnss
-}  // namespace hardware
-}  // namespace android
-
-#endif  // android_hardware_gnss_common_default_Utils_H_
diff --git a/hal/gnss/common/utils/include/v2_1/GnssAntennaInfo.h b/hal/gnss/common/utils/include/v2_1/GnssAntennaInfo.h
deleted file mode 100644
index a232499..0000000
--- a/hal/gnss/common/utils/include/v2_1/GnssAntennaInfo.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (C) 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.
- */
-
-#pragma once
-
-#include <android/hardware/gnss/2.1/IGnssAntennaInfo.h>
-
-#include <mutex>
-#include <thread>
-
-namespace android::hardware::gnss::V2_1::implementation {
-
-struct GnssAntennaInfo : public ::android::hardware::gnss::V2_1::IGnssAntennaInfo {
-    GnssAntennaInfo();
-    ~GnssAntennaInfo();
-
-    // Methods from ::android::hardware::gnss::V2_1::IGnssAntennaInfo follow.
-    Return<GnssAntennaInfoStatus> setCallback(
-            const sp<::android::hardware::gnss::V2_1::IGnssAntennaInfoCallback>& callback) override;
-    Return<void> close() override;
-
-  private:
-    void start();
-    void stop();
-    void reportAntennaInfo(
-            const hidl_vec<
-                    ::android::hardware::gnss::V2_1::IGnssAntennaInfoCallback::GnssAntennaInfo>&
-                    antennaInfo) const;
-
-    // Guarded by mMutex
-    static sp<::android::hardware::gnss::V2_1::IGnssAntennaInfoCallback> sCallback;
-
-    std::atomic<long> mMinIntervalMillis;
-    std::atomic<bool> mIsActive;
-    std::thread mThread;
-
-    // Synchronization lock for sCallback
-    mutable std::mutex mMutex;
-};
-
-}  // namespace android::hardware::gnss::V2_1::implementation
diff --git a/hal/gnss/common/utils/include/v2_1/GnssConfiguration.h b/hal/gnss/common/utils/include/v2_1/GnssConfiguration.h
deleted file mode 100644
index 2cfb38f..0000000
--- a/hal/gnss/common/utils/include/v2_1/GnssConfiguration.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright (C) 2019 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.
- */
-
-#pragma once
-
-#include <android/hardware/gnss/2.1/IGnssCallback.h>
-#include <android/hardware/gnss/2.1/IGnssConfiguration.h>
-#include <hidl/MQDescriptor.h>
-#include <hidl/Status.h>
-#include <mutex>
-#include <unordered_set>
-
-namespace android::hardware::gnss::V2_1::implementation {
-
-struct BlacklistedSourceHashV2_1 {
-    inline int operator()(
-            const ::android::hardware::gnss::V2_1::IGnssConfiguration::BlacklistedSource& source)
-            const {
-        return int(source.constellation) * 1000 + int(source.svid);
-    }
-};
-
-struct BlacklistedSourceEqualV2_1 {
-    inline bool operator()(
-            const ::android::hardware::gnss::V2_1::IGnssConfiguration::BlacklistedSource& s1,
-            const ::android::hardware::gnss::V2_1::IGnssConfiguration::BlacklistedSource& s2)
-            const {
-        return (s1.constellation == s2.constellation) && (s1.svid == s2.svid);
-    }
-};
-
-using BlacklistedSourceSetV2_1 =
-        std::unordered_set<::android::hardware::gnss::V2_1::IGnssConfiguration::BlacklistedSource,
-                           BlacklistedSourceHashV2_1, BlacklistedSourceEqualV2_1>;
-using BlacklistedConstellationSetV2_1 = std::unordered_set<V2_0::GnssConstellationType>;
-
-struct GnssConfiguration : public IGnssConfiguration {
-    // Methods from ::android::hardware::gnss::V1_0::IGnssConfiguration follow.
-    Return<bool> setSuplEs(bool enabled) override;
-    Return<bool> setSuplVersion(uint32_t version) override;
-    Return<bool> setSuplMode(hidl_bitfield<SuplMode> mode) override;
-    Return<bool> setGpsLock(hidl_bitfield<GpsLock> lock) override;
-    Return<bool> setLppProfile(hidl_bitfield<LppProfile> lppProfile) override;
-    Return<bool> setGlonassPositioningProtocol(hidl_bitfield<GlonassPosProtocol> protocol) override;
-    Return<bool> setEmergencySuplPdn(bool enable) override;
-
-    // Methods from ::android::hardware::gnss::V1_1::IGnssConfiguration follow.
-    Return<bool> setBlacklist(
-            const hidl_vec<V1_1::IGnssConfiguration::BlacklistedSource>& blacklist) override;
-
-    std::recursive_mutex& getMutex() const;
-
-    // Methods from ::android::hardware::gnss::V2_0::IGnssConfiguration follow.
-    Return<bool> setEsExtensionSec(uint32_t emergencyExtensionSeconds) override;
-
-    // Methods from ::android::hardware::gnss::V2_1::IGnssConfiguration follow.
-    Return<bool> setBlacklist_2_1(
-            const hidl_vec<V2_1::IGnssConfiguration::BlacklistedSource>& blacklist) override;
-
-    Return<bool> isBlacklistedV2_1(const V2_1::IGnssCallback::GnssSvInfo& gnssSvInfo) const;
-
-  private:
-    mutable std::recursive_mutex mMutex;
-
-    BlacklistedSourceSetV2_1 mBlacklistedSourceSet;
-    BlacklistedConstellationSetV2_1 mBlacklistedConstellationSet;
-};
-
-}  // namespace android::hardware::gnss::V2_1::implementation
diff --git a/hal/gnss/common/utils/include/v2_1/GnssDebug.h b/hal/gnss/common/utils/include/v2_1/GnssDebug.h
deleted file mode 100644
index 481de59..0000000
--- a/hal/gnss/common/utils/include/v2_1/GnssDebug.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) 2018 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.
- */
-
-#pragma once
-
-#include <android/hardware/gnss/1.0/IGnssDebug.h>
-#include <hidl/Status.h>
-
-namespace android::hardware::gnss::V1_1::implementation {
-
-/* Interface for GNSS Debug support. */
-struct GnssDebug : public V1_0::IGnssDebug {
-    /*
-     * Methods from ::android::hardware::gnss::V1_0::IGnssDebug follow.
-     * These declarations were generated from IGnssDebug.hal.
-     */
-    Return<void> getDebugData(V1_0::IGnssDebug::getDebugData_cb _hidl_cb) override;
-};
-
-}  // namespace android::hardware::gnss::V1_1::implementation
diff --git a/hal/gnss/common/utils/include/v2_1/GnssMeasurement.h b/hal/gnss/common/utils/include/v2_1/GnssMeasurement.h
deleted file mode 100644
index db8407b..0000000
--- a/hal/gnss/common/utils/include/v2_1/GnssMeasurement.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright (C) 2019 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.
- */
-
-#pragma once
-
-#include <android/hardware/gnss/2.1/IGnssMeasurement.h>
-#include <hidl/MQDescriptor.h>
-#include <hidl/Status.h>
-#include <atomic>
-#include <mutex>
-#include <thread>
-
-namespace android::hardware::gnss::V2_1::implementation {
-
-struct GnssMeasurement : public IGnssMeasurement {
-    GnssMeasurement();
-    ~GnssMeasurement();
-    // Methods from V1_0::IGnssMeasurement follow.
-    Return<V1_0::IGnssMeasurement::GnssMeasurementStatus> setCallback(
-            const sp<V1_0::IGnssMeasurementCallback>& callback) override;
-    Return<void> close() override;
-
-    // Methods from V1_1::IGnssMeasurement follow.
-    Return<V1_0::IGnssMeasurement::GnssMeasurementStatus> setCallback_1_1(
-            const sp<V1_1::IGnssMeasurementCallback>& callback, bool enableFullTracking) override;
-
-    // Methods from V2_0::IGnssMeasurement follow.
-    Return<V1_0::IGnssMeasurement::GnssMeasurementStatus> setCallback_2_0(
-            const sp<V2_0::IGnssMeasurementCallback>& callback, bool enableFullTracking) override;
-
-    // Methods from V2_1::IGnssMeasurement follow.
-    Return<V1_0::IGnssMeasurement::GnssMeasurementStatus> setCallback_2_1(
-            const sp<V2_1::IGnssMeasurementCallback>& callback, bool enableFullTracking) override;
-
-  private:
-    void start();
-    void stop();
-    void reportMeasurement(const V2_0::IGnssMeasurementCallback::GnssData&);
-    void reportMeasurement(const V2_1::IGnssMeasurementCallback::GnssData&);
-
-    // Guarded by mMutex
-    static sp<V2_1::IGnssMeasurementCallback> sCallback_2_1;
-
-    // Guarded by mMutex
-    static sp<V2_0::IGnssMeasurementCallback> sCallback_2_0;
-
-    std::atomic<long> mMinIntervalMillis;
-    std::atomic<bool> mIsActive;
-    std::thread mThread;
-
-    // Synchronization lock for sCallback_2_1 and sCallback_2_0
-    mutable std::mutex mMutex;
-};
-
-}  // namespace android::hardware::gnss::V2_1::implementation
diff --git a/hal/gnss/common/utils/include/v2_1/GnssMeasurementCorrections.h b/hal/gnss/common/utils/include/v2_1/GnssMeasurementCorrections.h
deleted file mode 100644
index 54045ad..0000000
--- a/hal/gnss/common/utils/include/v2_1/GnssMeasurementCorrections.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2019 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.
- */
-
-#pragma once
-
-#include <android/hardware/gnss/measurement_corrections/1.1/IMeasurementCorrections.h>
-#include <hidl/MQDescriptor.h>
-#include <hidl/Status.h>
-
-namespace android::hardware::gnss::measurement_corrections::V1_1::implementation {
-
-struct GnssMeasurementCorrections : public IMeasurementCorrections {
-    GnssMeasurementCorrections();
-    ~GnssMeasurementCorrections();
-
-    // Methods from V1_0::IMeasurementCorrections follow.
-    Return<bool> setCorrections(const V1_0::MeasurementCorrections& corrections) override;
-    Return<bool> setCallback(const sp<V1_0::IMeasurementCorrectionsCallback>& callback) override;
-
-    // Methods from V1_1::IMeasurementCorrections follow.
-    Return<bool> setCorrections_1_1(const V1_1::MeasurementCorrections& corrections) override;
-};
-
-}  // namespace android::hardware::gnss::measurement_corrections::V1_1::implementation
diff --git a/hal/gnss/common/utils/include/v2_1/GnssTemplate.h b/hal/gnss/common/utils/include/v2_1/GnssTemplate.h
deleted file mode 100644
index 131af24..0000000
--- a/hal/gnss/common/utils/include/v2_1/GnssTemplate.h
+++ /dev/null
@@ -1,750 +0,0 @@
-/*
- * Copyright (C) 2019 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.
- */
-
-#pragma once
-
-#include <android/hardware/gnss/2.1/IGnss.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <hidl/MQDescriptor.h>
-#include <hidl/Status.h>
-#include <log/log.h>
-#include <sys/epoll.h>
-#include <atomic>
-#include <mutex>
-#include <string>
-#include <thread>
-
-#include <cutils/properties.h>
-
-#include "GnssAntennaInfo.h"
-#include "GnssConfiguration.h"
-#include "GnssDebug.h"
-#include "GnssMeasurement.h"
-#include "GnssMeasurementCorrections.h"
-#include "MockLocation.h"
-#include "NmeaFixInfo.h"
-#include "Utils.h"
-
-namespace android::hardware::gnss::common::implementation {
-
-constexpr int INPUT_BUFFER_SIZE = 128;
-constexpr char CMD_GET_LOCATION[] = "CMD_GET_LOCATION";
-constexpr char GNSS_PATH[] = "/dev/gnss0";
-
-template <class T_IGnss>
-struct GnssTemplate : public T_IGnss {
-    GnssTemplate();
-    ~GnssTemplate();
-    // Methods from V1_0::IGnss follow.
-    Return<bool> setCallback(const sp<V1_0::IGnssCallback>& callback) override;
-    Return<bool> start() override;
-    Return<bool> stop() override;
-    Return<void> cleanup() override;
-    Return<bool> injectTime(int64_t timeMs, int64_t timeReferenceMs,
-                            int32_t uncertaintyMs) override;
-    Return<bool> injectLocation(double latitudeDegrees, double longitudeDegrees,
-                                float accuracyMeters) override;
-    Return<void> deleteAidingData(V1_0::IGnss::GnssAidingData aidingDataFlags) override;
-    Return<bool> setPositionMode(V1_0::IGnss::GnssPositionMode mode,
-                                 V1_0::IGnss::GnssPositionRecurrence recurrence,
-                                 uint32_t minIntervalMs, uint32_t preferredAccuracyMeters,
-                                 uint32_t preferredTimeMs) override;
-    Return<sp<V1_0::IAGnssRil>> getExtensionAGnssRil() override;
-    Return<sp<V1_0::IGnssGeofencing>> getExtensionGnssGeofencing() override;
-    Return<sp<V1_0::IAGnss>> getExtensionAGnss() override;
-    Return<sp<V1_0::IGnssNi>> getExtensionGnssNi() override;
-    Return<sp<V1_0::IGnssMeasurement>> getExtensionGnssMeasurement() override;
-    Return<sp<V1_0::IGnssNavigationMessage>> getExtensionGnssNavigationMessage() override;
-    Return<sp<V1_0::IGnssXtra>> getExtensionXtra() override;
-    Return<sp<V1_0::IGnssConfiguration>> getExtensionGnssConfiguration() override;
-    Return<sp<V1_0::IGnssDebug>> getExtensionGnssDebug() override;
-    Return<sp<V1_0::IGnssBatching>> getExtensionGnssBatching() override;
-
-    // Methods from V1_1::IGnss follow.
-    Return<bool> setCallback_1_1(const sp<V1_1::IGnssCallback>& callback) override;
-    Return<bool> setPositionMode_1_1(V1_0::IGnss::GnssPositionMode mode,
-                                     V1_0::IGnss::GnssPositionRecurrence recurrence,
-                                     uint32_t minIntervalMs, uint32_t preferredAccuracyMeters,
-                                     uint32_t preferredTimeMs, bool lowPowerMode) override;
-    Return<sp<V1_1::IGnssConfiguration>> getExtensionGnssConfiguration_1_1() override;
-    Return<sp<V1_1::IGnssMeasurement>> getExtensionGnssMeasurement_1_1() override;
-    Return<bool> injectBestLocation(const V1_0::GnssLocation& location) override;
-
-    // Methods from V2_0::IGnss follow.
-    Return<bool> setCallback_2_0(const sp<V2_0::IGnssCallback>& callback) override;
-    Return<sp<V2_0::IGnssConfiguration>> getExtensionGnssConfiguration_2_0() override;
-    Return<sp<V2_0::IGnssDebug>> getExtensionGnssDebug_2_0() override;
-    Return<sp<V2_0::IAGnss>> getExtensionAGnss_2_0() override;
-    Return<sp<V2_0::IAGnssRil>> getExtensionAGnssRil_2_0() override;
-    Return<sp<V2_0::IGnssMeasurement>> getExtensionGnssMeasurement_2_0() override;
-    Return<sp<measurement_corrections::V1_0::IMeasurementCorrections>>
-    getExtensionMeasurementCorrections() override;
-    Return<sp<visibility_control::V1_0::IGnssVisibilityControl>> getExtensionVisibilityControl()
-            override;
-    Return<sp<V2_0::IGnssBatching>> getExtensionGnssBatching_2_0() override;
-    Return<bool> injectBestLocation_2_0(const V2_0::GnssLocation& location) override;
-
-    // Methods from V2_1::IGnss follow.
-    Return<bool> setCallback_2_1(const sp<V2_1::IGnssCallback>& callback) override;
-    Return<sp<V2_1::IGnssMeasurement>> getExtensionGnssMeasurement_2_1() override;
-    Return<sp<V2_1::IGnssConfiguration>> getExtensionGnssConfiguration_2_1() override;
-    Return<sp<measurement_corrections::V1_1::IMeasurementCorrections>>
-    getExtensionMeasurementCorrections_1_1() override;
-    Return<sp<V2_1::IGnssAntennaInfo>> getExtensionGnssAntennaInfo() override;
-
-    Return<void> debug(const hidl_handle& fd, const hidl_vec<hidl_string>& options) override;
-
-  private:
-    std::unique_ptr<V2_0::GnssLocation> getLocationFromHW();
-    void reportLocation(const V2_0::GnssLocation&) const;
-    void reportLocation(const V1_0::GnssLocation&) const;
-    void reportSvStatus(const hidl_vec<V2_1::IGnssCallback::GnssSvInfo>&) const;
-    void reportGnssStatusValue(const V1_0::IGnssCallback::GnssStatusValue) const;
-
-    Return<void> help(const hidl_handle& fd);
-    Return<void> setLocation(const hidl_handle& fd, const hidl_vec<hidl_string>& options);
-
-    static sp<V2_1::IGnssCallback> sGnssCallback_2_1;
-    static sp<V2_0::IGnssCallback> sGnssCallback_2_0;
-    static sp<V1_1::IGnssCallback> sGnssCallback_1_1;
-    static sp<V1_0::IGnssCallback> sGnssCallback_1_0;
-
-    std::atomic<long> mMinIntervalMs;
-    sp<V2_1::implementation::GnssConfiguration> mGnssConfiguration;
-    std::atomic<bool> mIsActive;
-    std::atomic<bool> mHardwareModeChecked;
-    std::atomic<int> mGnssFd;
-    std::thread mThread;
-
-    mutable std::mutex mMutex;
-    virtual hidl_vec<V2_1::IGnssCallback::GnssSvInfo> filterBlocklistedSatellitesV2_1(
-            hidl_vec<V2_1::IGnssCallback::GnssSvInfo> gnssSvInfoList);
-    virtual void notePowerConsumption();
-};
-
-template <class T_IGnss>
-sp<V2_1::IGnssCallback> GnssTemplate<T_IGnss>::sGnssCallback_2_1 = nullptr;
-template <class T_IGnss>
-sp<V2_0::IGnssCallback> GnssTemplate<T_IGnss>::sGnssCallback_2_0 = nullptr;
-template <class T_IGnss>
-sp<V1_1::IGnssCallback> GnssTemplate<T_IGnss>::sGnssCallback_1_1 = nullptr;
-template <class T_IGnss>
-sp<V1_0::IGnssCallback> GnssTemplate<T_IGnss>::sGnssCallback_1_0 = nullptr;
-
-template <class T_IGnss>
-GnssTemplate<T_IGnss>::GnssTemplate()
-    : mMinIntervalMs(1000),
-      mGnssConfiguration{new V2_1::implementation::GnssConfiguration()},
-      mHardwareModeChecked(false),
-      mGnssFd(-1) {}
-
-template <class T_IGnss>
-GnssTemplate<T_IGnss>::~GnssTemplate() {
-    stop();
-}
-
-template <class T_IGnss>
-std::unique_ptr<V2_0::GnssLocation> GnssTemplate<T_IGnss>::getLocationFromHW() {
-    char inputBuffer[INPUT_BUFFER_SIZE];
-    if (!mHardwareModeChecked) {
-        // default using gnss0
-        const char * gnss_dev_path = GNSS_PATH;
-        char devname_value[PROPERTY_VALUE_MAX] = "";
-        if (property_get("debug.location.gnss.devname", devname_value, NULL) > 0) {
-            gnss_dev_path = devname_value;
-            ALOGD("using %s instead of the default %s", gnss_dev_path, GNSS_PATH);
-        }
-
-        mGnssFd = open(gnss_dev_path, O_RDWR | O_NONBLOCK);
-        if (mGnssFd == -1) {
-            ALOGW("Failed to open %s errno: %d", gnss_dev_path, errno);
-        }
-        mHardwareModeChecked = true;
-    }
-
-    if (mGnssFd == -1) {
-        return nullptr;
-    }
-
-    int bytes_write = write(mGnssFd, CMD_GET_LOCATION, strlen(CMD_GET_LOCATION));
-    if (bytes_write <= 0) {
-        return nullptr;
-    }
-
-    struct epoll_event ev, events[1];
-    ev.data.fd = mGnssFd;
-    ev.events = EPOLLIN;
-    int epoll_fd = epoll_create1(0);
-    epoll_ctl(epoll_fd, EPOLL_CTL_ADD, mGnssFd, &ev);
-    int bytes_read = -1;
-    std::string inputStr = "";
-    int epoll_ret = epoll_wait(epoll_fd, events, 1, mMinIntervalMs);
-
-    if (epoll_ret == -1) {
-        return nullptr;
-    }
-    while (true) {
-        memset(inputBuffer, 0, INPUT_BUFFER_SIZE);
-        bytes_read = read(mGnssFd, &inputBuffer, INPUT_BUFFER_SIZE);
-        if (bytes_read <= 0) {
-            break;
-        }
-        inputStr += std::string(inputBuffer, bytes_read);
-    }
-    return NmeaFixInfo::getLocationFromInputStr(inputStr);
-}
-
-template <class T_IGnss>
-Return<bool> GnssTemplate<T_IGnss>::start() {
-    if (mIsActive) {
-        ALOGW("Gnss has started. Restarting...");
-        stop();
-    }
-
-    mIsActive = true;
-    this->reportGnssStatusValue(V1_0::IGnssCallback::GnssStatusValue::SESSION_BEGIN);
-    mThread = std::thread([this]() {
-        while (mIsActive == true) {
-            auto svStatus = filterBlocklistedSatellitesV2_1(Utils::getMockSvInfoListV2_1());
-            this->reportSvStatus(svStatus);
-            auto currentLocation = getLocationFromHW();
-            notePowerConsumption();
-            if (mGnssFd != -1) {
-                // Only report location if the return from hardware is valid
-                // note that we can not merge these two "if" together, if didn't
-                // get location from hardware, we shouldn't report location, not
-                // report the "default" one.
-                if (currentLocation != nullptr) {
-                    this->reportLocation(*currentLocation);
-                }
-            } else {
-                if (sGnssCallback_2_1 != nullptr || sGnssCallback_2_0 != nullptr) {
-                    const auto location = Utils::getMockLocationV2_0();
-                    this->reportLocation(location);
-                } else {
-                    const auto location = Utils::getMockLocationV1_0();
-                    this->reportLocation(location);
-                }
-            }
-            std::this_thread::sleep_for(std::chrono::milliseconds(mMinIntervalMs));
-        }
-    });
-    return true;
-}
-
-template <class T_IGnss>
-hidl_vec<V2_1::IGnssCallback::GnssSvInfo> GnssTemplate<T_IGnss>::filterBlocklistedSatellitesV2_1(
-        hidl_vec<V2_1::IGnssCallback::GnssSvInfo> gnssSvInfoList) {
-    ALOGD("GnssTemplate::filterBlocklistedSatellitesV2_1");
-    for (uint32_t i = 0; i < gnssSvInfoList.size(); i++) {
-        if (mGnssConfiguration->isBlacklistedV2_1(gnssSvInfoList[i])) {
-            gnssSvInfoList[i].v2_0.v1_0.svFlag &=
-                    ~static_cast<uint8_t>(V1_0::IGnssCallback::GnssSvFlags::USED_IN_FIX);
-        }
-    }
-    return gnssSvInfoList;
-}
-
-template <class T_IGnss>
-void GnssTemplate<T_IGnss>::notePowerConsumption() {
-    ALOGD("GnssTemplate::notePowerConsumption");
-}
-
-template <class T_IGnss>
-Return<bool> GnssTemplate<T_IGnss>::stop() {
-    ALOGD("stop");
-    mIsActive = false;
-    this->reportGnssStatusValue(V1_0::IGnssCallback::GnssStatusValue::SESSION_END);
-    if (mThread.joinable()) {
-        mThread.join();
-    }
-    if (mGnssFd != -1) {
-        close(mGnssFd);
-        mGnssFd = -1;
-        mHardwareModeChecked = false;
-    }
-    return true;
-}
-
-// Methods from V1_0::IGnss follow.
-template <class T_IGnss>
-Return<bool> GnssTemplate<T_IGnss>::setCallback(const sp<V1_0::IGnssCallback>& callback) {
-    if (callback == nullptr) {
-        ALOGE("%s: Null callback ignored", __func__);
-        return false;
-    }
-
-    sGnssCallback_1_0 = callback;
-
-    uint32_t capabilities = 0x0 | V1_0::IGnssCallback::Capabilities::MEASUREMENTS |
-                            V1_0::IGnssCallback::Capabilities::SCHEDULING;
-    auto ret = sGnssCallback_1_0->gnssSetCapabilitesCb(capabilities);
-    if (!ret.isOk()) {
-        ALOGE("%s: Unable to invoke callback", __func__);
-    }
-
-    V2_1::IGnssCallback::GnssSystemInfo gnssInfo = {.yearOfHw = 2018};
-
-    ret = sGnssCallback_1_0->gnssSetSystemInfoCb(gnssInfo);
-    if (!ret.isOk()) {
-        ALOGE("%s: Unable to invoke callback", __func__);
-    }
-
-    return true;
-}
-
-template <class T_IGnss>
-Return<void> GnssTemplate<T_IGnss>::cleanup() {
-    sGnssCallback_2_1 = nullptr;
-    sGnssCallback_2_0 = nullptr;
-    return Void();
-}
-
-template <class T_IGnss>
-Return<bool> GnssTemplate<T_IGnss>::injectTime(int64_t, int64_t, int32_t) {
-    return true;
-}
-
-template <class T_IGnss>
-Return<bool> GnssTemplate<T_IGnss>::injectLocation(double, double, float) {
-    return true;
-}
-
-template <class T_IGnss>
-Return<void> GnssTemplate<T_IGnss>::deleteAidingData(V1_0::IGnss::GnssAidingData) {
-    // TODO implement
-    return Void();
-}
-
-template <class T_IGnss>
-Return<bool> GnssTemplate<T_IGnss>::setPositionMode(V1_0::IGnss::GnssPositionMode,
-                                                    V1_0::IGnss::GnssPositionRecurrence,
-                                                    uint32_t minIntervalMs, uint32_t, uint32_t) {
-    mMinIntervalMs = minIntervalMs;
-    return true;
-}
-
-template <class T_IGnss>
-Return<sp<V1_0::IAGnssRil>> GnssTemplate<T_IGnss>::getExtensionAGnssRil() {
-    // TODO implement
-    return ::android::sp<V1_0::IAGnssRil>{};
-}
-
-template <class T_IGnss>
-Return<sp<V1_0::IGnssGeofencing>> GnssTemplate<T_IGnss>::getExtensionGnssGeofencing() {
-    // TODO implement
-    return ::android::sp<V1_0::IGnssGeofencing>{};
-}
-
-template <class T_IGnss>
-Return<sp<V1_0::IAGnss>> GnssTemplate<T_IGnss>::getExtensionAGnss() {
-    // TODO implement
-    return ::android::sp<V1_0::IAGnss>{};
-}
-
-template <class T_IGnss>
-Return<sp<V1_0::IGnssNi>> GnssTemplate<T_IGnss>::getExtensionGnssNi() {
-    // TODO implement
-    return ::android::sp<V1_0::IGnssNi>{};
-}
-
-template <class T_IGnss>
-Return<sp<V1_0::IGnssMeasurement>> GnssTemplate<T_IGnss>::getExtensionGnssMeasurement() {
-    ALOGD("Gnss::getExtensionGnssMeasurement");
-    return new V2_1::implementation::GnssMeasurement();
-}
-
-template <class T_IGnss>
-Return<sp<V1_0::IGnssNavigationMessage>>
-GnssTemplate<T_IGnss>::getExtensionGnssNavigationMessage() {
-    // TODO implement
-    return ::android::sp<V1_0::IGnssNavigationMessage>{};
-}
-
-template <class T_IGnss>
-Return<sp<V1_0::IGnssXtra>> GnssTemplate<T_IGnss>::getExtensionXtra() {
-    // TODO implement
-    return ::android::sp<V1_0::IGnssXtra>{};
-}
-
-template <class T_IGnss>
-Return<sp<V1_0::IGnssConfiguration>> GnssTemplate<T_IGnss>::getExtensionGnssConfiguration() {
-    // TODO implement
-    return ::android::sp<V1_0::IGnssConfiguration>{};
-}
-
-template <class T_IGnss>
-Return<sp<V1_0::IGnssDebug>> GnssTemplate<T_IGnss>::getExtensionGnssDebug() {
-    return new V1_1::implementation::GnssDebug();
-}
-
-template <class T_IGnss>
-Return<sp<V1_0::IGnssBatching>> GnssTemplate<T_IGnss>::getExtensionGnssBatching() {
-    // TODO implement
-    return ::android::sp<V1_0::IGnssBatching>{};
-}
-
-// Methods from V1_1::IGnss follow.
-template <class T_IGnss>
-Return<bool> GnssTemplate<T_IGnss>::setCallback_1_1(const sp<V1_1::IGnssCallback>& callback) {
-    if (callback == nullptr) {
-        ALOGE("%s: Null callback ignored", __func__);
-        return false;
-    }
-
-    sGnssCallback_1_1 = callback;
-
-    uint32_t capabilities = 0x0;
-    auto ret = sGnssCallback_1_1->gnssSetCapabilitesCb(capabilities);
-    if (!ret.isOk()) {
-        ALOGE("%s: Unable to invoke callback", __func__);
-    }
-
-    V2_1::IGnssCallback::GnssSystemInfo gnssInfo = {.yearOfHw = 2018};
-
-    ret = sGnssCallback_1_1->gnssSetSystemInfoCb(gnssInfo);
-    if (!ret.isOk()) {
-        ALOGE("%s: Unable to invoke callback", __func__);
-    }
-
-    auto gnssName = "Google Mock GNSS Implementation v2.1";
-    ret = sGnssCallback_1_1->gnssNameCb(gnssName);
-    if (!ret.isOk()) {
-        ALOGE("%s: Unable to invoke callback", __func__);
-    }
-
-    return true;
-}
-
-template <class T_IGnss>
-Return<bool> GnssTemplate<T_IGnss>::setPositionMode_1_1(V1_0::IGnss::GnssPositionMode,
-                                                        V1_0::IGnss::GnssPositionRecurrence,
-                                                        uint32_t minIntervalMs, uint32_t, uint32_t,
-                                                        bool) {
-    mMinIntervalMs = minIntervalMs;
-    return true;
-}
-
-template <class T_IGnss>
-Return<sp<V1_1::IGnssConfiguration>> GnssTemplate<T_IGnss>::getExtensionGnssConfiguration_1_1() {
-    // TODO implement
-    return ::android::sp<V1_1::IGnssConfiguration>{};
-}
-
-template <class T_IGnss>
-Return<sp<V1_1::IGnssMeasurement>> GnssTemplate<T_IGnss>::getExtensionGnssMeasurement_1_1() {
-    // TODO implement
-    return ::android::sp<V1_1::IGnssMeasurement>{};
-}
-
-template <class T_IGnss>
-Return<bool> GnssTemplate<T_IGnss>::injectBestLocation(const V1_0::GnssLocation&) {
-    return true;
-}
-
-// Methods from V2_0::IGnss follow.
-template <class T_IGnss>
-Return<bool> GnssTemplate<T_IGnss>::setCallback_2_0(const sp<V2_0::IGnssCallback>& callback) {
-    ALOGD("Gnss::setCallback_2_0");
-    if (callback == nullptr) {
-        ALOGE("%s: Null callback ignored", __func__);
-        return false;
-    }
-
-    sGnssCallback_2_0 = callback;
-
-    using Capabilities = V2_0::IGnssCallback::Capabilities;
-    const auto capabilities = Capabilities::MEASUREMENTS | Capabilities::MEASUREMENT_CORRECTIONS |
-                              Capabilities::LOW_POWER_MODE | Capabilities::SATELLITE_BLACKLIST;
-    auto ret = sGnssCallback_2_0->gnssSetCapabilitiesCb_2_0(capabilities);
-    if (!ret.isOk()) {
-        ALOGE("%s: Unable to invoke callback", __func__);
-    }
-
-    V1_1::IGnssCallback::GnssSystemInfo gnssInfo = {.yearOfHw = 2019};
-
-    ret = sGnssCallback_2_0->gnssSetSystemInfoCb(gnssInfo);
-    if (!ret.isOk()) {
-        ALOGE("%s: Unable to invoke callback", __func__);
-    }
-
-    auto gnssName = "Google Mock GNSS Implementation v2.1";
-    ret = sGnssCallback_2_0->gnssNameCb(gnssName);
-    if (!ret.isOk()) {
-        ALOGE("%s: Unable to invoke callback", __func__);
-    }
-
-    return true;
-}
-
-template <class T_IGnss>
-Return<sp<V2_0::IGnssConfiguration>> GnssTemplate<T_IGnss>::getExtensionGnssConfiguration_2_0() {
-    ALOGD("Gnss::getExtensionGnssConfiguration_2_0");
-    return mGnssConfiguration;
-}
-
-template <class T_IGnss>
-Return<sp<V2_0::IGnssDebug>> GnssTemplate<T_IGnss>::getExtensionGnssDebug_2_0() {
-    // TODO implement
-    return ::android::sp<V2_0::IGnssDebug>{};
-}
-
-template <class T_IGnss>
-Return<sp<V2_0::IAGnss>> GnssTemplate<T_IGnss>::getExtensionAGnss_2_0() {
-    // TODO implement
-    return ::android::sp<V2_0::IAGnss>{};
-}
-
-template <class T_IGnss>
-Return<sp<V2_0::IAGnssRil>> GnssTemplate<T_IGnss>::getExtensionAGnssRil_2_0() {
-    // TODO implement
-    return ::android::sp<V2_0::IAGnssRil>{};
-}
-
-template <class T_IGnss>
-Return<sp<V2_0::IGnssMeasurement>> GnssTemplate<T_IGnss>::getExtensionGnssMeasurement_2_0() {
-    ALOGD("Gnss::getExtensionGnssMeasurement_2_0");
-    return new V2_1::implementation::GnssMeasurement();
-}
-
-template <class T_IGnss>
-Return<sp<measurement_corrections::V1_0::IMeasurementCorrections>>
-GnssTemplate<T_IGnss>::getExtensionMeasurementCorrections() {
-    ALOGD("Gnss::getExtensionMeasurementCorrections()");
-    return new measurement_corrections::V1_1::implementation::GnssMeasurementCorrections();
-}
-
-template <class T_IGnss>
-Return<sp<visibility_control::V1_0::IGnssVisibilityControl>>
-GnssTemplate<T_IGnss>::getExtensionVisibilityControl() {
-    // TODO implement
-    return ::android::sp<visibility_control::V1_0::IGnssVisibilityControl>{};
-}
-
-template <class T_IGnss>
-Return<sp<V2_0::IGnssBatching>> GnssTemplate<T_IGnss>::getExtensionGnssBatching_2_0() {
-    // TODO implement
-    return ::android::sp<V2_0::IGnssBatching>{};
-}
-
-template <class T_IGnss>
-Return<bool> GnssTemplate<T_IGnss>::injectBestLocation_2_0(const V2_0::GnssLocation&) {
-    // TODO(b/124012850): Implement function.
-    return bool{};
-}
-
-// Methods from V2_1::IGnss follow.
-template <class T_IGnss>
-Return<bool> GnssTemplate<T_IGnss>::setCallback_2_1(const sp<V2_1::IGnssCallback>& callback) {
-    ALOGD("Gnss::setCallback_2_1");
-    if (callback == nullptr) {
-        ALOGE("%s: Null callback ignored", __func__);
-        return false;
-    }
-
-    sGnssCallback_2_1 = callback;
-
-    using Capabilities = V2_1::IGnssCallback::Capabilities;
-    const auto capabilities = Capabilities::MEASUREMENTS | Capabilities::MEASUREMENT_CORRECTIONS |
-                              Capabilities::LOW_POWER_MODE | Capabilities::SATELLITE_BLACKLIST |
-                              Capabilities::ANTENNA_INFO;
-    auto ret = sGnssCallback_2_1->gnssSetCapabilitiesCb_2_1(capabilities);
-    if (!ret.isOk()) {
-        ALOGE("%s: Unable to invoke callback", __func__);
-    }
-
-    V1_1::IGnssCallback::GnssSystemInfo gnssInfo = {.yearOfHw = 2020};
-
-    ret = sGnssCallback_2_1->gnssSetSystemInfoCb(gnssInfo);
-    if (!ret.isOk()) {
-        ALOGE("%s: Unable to invoke callback", __func__);
-    }
-
-    auto gnssName = "Android Mock GNSS Implementation v2.1";
-    ret = sGnssCallback_2_1->gnssNameCb(gnssName);
-    if (!ret.isOk()) {
-        ALOGE("%s: Unable to invoke callback", __func__);
-    }
-
-    return true;
-}
-
-template <class T_IGnss>
-Return<sp<V2_1::IGnssMeasurement>> GnssTemplate<T_IGnss>::getExtensionGnssMeasurement_2_1() {
-    ALOGD("Gnss::getExtensionGnssMeasurement_2_1");
-    return new V2_1::implementation::GnssMeasurement();
-}
-
-template <class T_IGnss>
-Return<sp<V2_1::IGnssConfiguration>> GnssTemplate<T_IGnss>::getExtensionGnssConfiguration_2_1() {
-    ALOGD("Gnss::getExtensionGnssConfiguration_2_1");
-    return mGnssConfiguration;
-}
-
-template <class T_IGnss>
-Return<sp<measurement_corrections::V1_1::IMeasurementCorrections>>
-GnssTemplate<T_IGnss>::getExtensionMeasurementCorrections_1_1() {
-    ALOGD("Gnss::getExtensionMeasurementCorrections_1_1()");
-    return new measurement_corrections::V1_1::implementation::GnssMeasurementCorrections();
-}
-
-template <class T_IGnss>
-Return<sp<V2_1::IGnssAntennaInfo>> GnssTemplate<T_IGnss>::getExtensionGnssAntennaInfo() {
-    ALOGD("Gnss::getExtensionGnssAntennaInfo");
-    return new V2_1::implementation::GnssAntennaInfo();
-}
-
-template <class T_IGnss>
-void GnssTemplate<T_IGnss>::reportGnssStatusValue(
-        const V1_0::IGnssCallback::GnssStatusValue gnssStatusValue) const {
-    std::unique_lock<std::mutex> lock(mMutex);
-    if (sGnssCallback_2_1 == nullptr) {
-        ALOGE("%s: sGnssCallback v2.1 is null.", __func__);
-        return;
-    }
-    auto ret = sGnssCallback_2_1->gnssStatusCb(gnssStatusValue);
-    if (!ret.isOk()) {
-        ALOGE("%s: Unable to invoke callback", __func__);
-    }
-}
-
-template <class T_IGnss>
-void GnssTemplate<T_IGnss>::reportSvStatus(
-        const hidl_vec<V2_1::IGnssCallback::GnssSvInfo>& svInfoList) const {
-    std::unique_lock<std::mutex> lock(mMutex);
-    // TODO(skz): update this to call 2_0 callback if non-null
-    if (sGnssCallback_2_1 == nullptr) {
-        ALOGE("%s: sGnssCallback v2.1 is null.", __func__);
-        return;
-    }
-    auto ret = sGnssCallback_2_1->gnssSvStatusCb_2_1(svInfoList);
-    if (!ret.isOk()) {
-        ALOGE("%s: Unable to invoke callback", __func__);
-    }
-}
-
-template <class T_IGnss>
-void GnssTemplate<T_IGnss>::reportLocation(const V1_0::GnssLocation& location) const {
-    std::unique_lock<std::mutex> lock(mMutex);
-    if (sGnssCallback_1_1 != nullptr) {
-        auto ret = sGnssCallback_1_1->gnssLocationCb(location);
-        if (!ret.isOk()) {
-            ALOGE("%s: Unable to invoke callback v1.1", __func__);
-        }
-        return;
-    }
-    if (sGnssCallback_1_0 == nullptr) {
-        ALOGE("%s: No non-null callback", __func__);
-        return;
-    }
-    auto ret = sGnssCallback_1_0->gnssLocationCb(location);
-    if (!ret.isOk()) {
-        ALOGE("%s: Unable to invoke callback v1.0", __func__);
-    }
-}
-
-template <class T_IGnss>
-void GnssTemplate<T_IGnss>::reportLocation(const V2_0::GnssLocation& location) const {
-    std::unique_lock<std::mutex> lock(mMutex);
-    if (sGnssCallback_2_1 != nullptr) {
-        auto ret = sGnssCallback_2_1->gnssLocationCb_2_0(location);
-        if (!ret.isOk()) {
-            ALOGE("%s: Unable to invoke callback v2.1", __func__);
-        }
-        return;
-    }
-    if (sGnssCallback_2_0 == nullptr) {
-        ALOGE("%s: No non-null callback", __func__);
-        return;
-    }
-    auto ret = sGnssCallback_2_0->gnssLocationCb_2_0(location);
-    if (!ret.isOk()) {
-        ALOGE("%s: Unable to invoke callback v2.0", __func__);
-    }
-}
-
-template <class T_IGnss>
-Return<void> GnssTemplate<T_IGnss>::setLocation(const hidl_handle& fd,
-                                                const hidl_vec<hidl_string>& options) {
-    auto lat = gMockLatitudeDegrees;
-    auto lon = gMockLongitudeDegrees;
-    auto ele = gMockAltitudeMeters;
-    auto bea = gMockBearingDegrees;
-    auto spd = gMockSpeedMetersPerSec;
-
-    for (size_t i = 1; i < options.size(); ++i) {
-        std::string option = options[i];
-        if (option.rfind("lat=", 0) == 0) {
-            option = option.substr(4);
-            lat = stof(option);
-        } else if (option.rfind("lon=", 0) == 0) {
-            option = option.substr(4);
-            lon = stof(option);
-        } else if (option.rfind("ele=", 0) == 0) {
-            option = option.substr(4);
-            ele = stof(option);
-        } else if (option.rfind("bea=", 0) == 0) {
-            option = option.substr(4);
-            bea = stof(option);
-        } else if (option.rfind("spd=", 0) == 0) {
-            option = option.substr(4);
-            spd = stof(option);
-        } else {
-            dprintf(fd->data[0], "unsupported location argument: %s\n", option.c_str());
-        }
-    }
-
-    gMockLatitudeDegrees = lat;
-    gMockLongitudeDegrees = lon;
-    gMockAltitudeMeters = ele;
-    gMockBearingDegrees = bea;
-    gMockSpeedMetersPerSec = spd;
-
-    dprintf(fd->data[0], "mock location updated to lat=%f lon=%f ele=%f bea=%f spd=%f\n",
-            gMockLatitudeDegrees, gMockLongitudeDegrees, gMockAltitudeMeters, gMockBearingDegrees,
-            gMockSpeedMetersPerSec);
-
-    return Void();
-}
-
-template <class T_IGnss>
-Return<void> GnssTemplate<T_IGnss>::help(const hidl_handle& fd) {
-    dprintf(fd->data[0],
-            "invalid option for Gnss HAL; valid options are:\n"
-            "location [lat=..] [lon=..] [ele=..] [bea=..] [spd=..]\n");
-    return Void();
-}
-
-template <class T_IGnss>
-Return<void> GnssTemplate<T_IGnss>::debug(const hidl_handle& fd,
-                                          const hidl_vec<hidl_string>& options) {
-    if (fd == nullptr || fd->numFds == 0) {
-        return Void();
-    }
-
-    if (options.size() == 0) {
-        return help(fd);
-    } else if (options[0] == "location") {
-        return setLocation(fd, options);
-    } else {
-        return help(fd);
-    }
-
-    return Void();
-}
-
-}  // namespace android::hardware::gnss::common::implementation
diff --git a/hal/gnss/common/utils/v2_1/GnssAntennaInfo.cpp b/hal/gnss/common/utils/v2_1/GnssAntennaInfo.cpp
deleted file mode 100644
index 962451c..0000000
--- a/hal/gnss/common/utils/v2_1/GnssAntennaInfo.cpp
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Copyright (C) 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.
- */
-
-#define LOG_TAG "GnssAntennaInfo"
-
-#include "v2_1/GnssAntennaInfo.h"
-#include "Utils.h"
-
-#include <log/log.h>
-
-using ::android::hardware::gnss::common::Utils;
-
-namespace android::hardware::gnss::V2_1::implementation {
-
-sp<IGnssAntennaInfoCallback> GnssAntennaInfo::sCallback = nullptr;
-
-GnssAntennaInfo::GnssAntennaInfo() : mMinIntervalMillis(1000) {}
-
-GnssAntennaInfo::~GnssAntennaInfo() {
-    stop();
-}
-
-// Methods from ::android::hardware::gnss::V2_1::IGnssAntennaInfo follow.
-Return<GnssAntennaInfo::GnssAntennaInfoStatus> GnssAntennaInfo::setCallback(
-        const sp<IGnssAntennaInfoCallback>& callback) {
-    ALOGD("setCallback");
-    std::unique_lock<std::mutex> lock(mMutex);
-    sCallback = callback;
-
-    if (mIsActive) {
-        ALOGW("GnssAntennaInfo callback already set. Resetting the callback...");
-        stop();
-    }
-    start();
-
-    return GnssAntennaInfoStatus::SUCCESS;
-}
-
-Return<void> GnssAntennaInfo::close() {
-    ALOGD("close");
-    stop();
-    std::unique_lock<std::mutex> lock(mMutex);
-    sCallback = nullptr;
-    return Void();
-}
-
-// Private methods
-void GnssAntennaInfo::start() {
-    ALOGD("start");
-    mIsActive = true;
-    mThread = std::thread([this]() {
-        while (mIsActive == true) {
-            if (sCallback != nullptr) {
-                auto antennaInfos = Utils::getMockAntennaInfos();
-                this->reportAntennaInfo(antennaInfos);
-            }
-
-            /** For mock implementation this is good. On real device, we should only report
-                antennaInfo at start and when there is a configuration change. **/
-            std::this_thread::sleep_for(std::chrono::milliseconds(mMinIntervalMillis));
-        }
-    });
-}
-
-void GnssAntennaInfo::stop() {
-    ALOGD("stop");
-    mIsActive = false;
-    if (mThread.joinable()) {
-        mThread.join();
-    }
-}
-
-void GnssAntennaInfo::reportAntennaInfo(
-        const hidl_vec<IGnssAntennaInfoCallback::GnssAntennaInfo>& antennaInfo) const {
-    std::unique_lock<std::mutex> lock(mMutex);
-
-    if (sCallback == nullptr) {
-        ALOGE("%s: No non-null callback", __func__);
-        return;
-    }
-
-    auto ret = sCallback->gnssAntennaInfoCb(antennaInfo);
-    if (!ret.isOk()) {
-        ALOGE("%s: Unable to invoke callback", __func__);
-    }
-}
-
-}  // namespace android::hardware::gnss::V2_1::implementation
diff --git a/hal/gnss/common/utils/v2_1/GnssConfiguration.cpp b/hal/gnss/common/utils/v2_1/GnssConfiguration.cpp
deleted file mode 100644
index be974bc..0000000
--- a/hal/gnss/common/utils/v2_1/GnssConfiguration.cpp
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Copyright (C) 2019 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.
- */
-
-#define LOG_TAG "GnssConfiguration"
-
-#include "v2_1/GnssConfiguration.h"
-#include <log/log.h>
-
-namespace android::hardware::gnss::V2_1::implementation {
-
-using GnssSvInfoV2_1 = V2_1::IGnssCallback::GnssSvInfo;
-using BlacklistedSourceV2_1 = V2_1::IGnssConfiguration::BlacklistedSource;
-
-// Methods from ::android::hardware::gnss::V1_0::IGnssConfiguration follow.
-Return<bool> GnssConfiguration::setSuplEs(bool enable) {
-    ALOGD("setSuplEs enable: %d", enable);
-    // Method deprecated in 2.0 and not expected to be called by the framework.
-    return false;
-}
-
-Return<bool> GnssConfiguration::setSuplVersion(uint32_t) {
-    return true;
-}
-
-Return<bool> GnssConfiguration::setSuplMode(hidl_bitfield<SuplMode>) {
-    return true;
-}
-
-Return<bool> GnssConfiguration::setGpsLock(hidl_bitfield<GpsLock> gpsLock) {
-    ALOGD("setGpsLock gpsLock: %hhu", static_cast<GpsLock>(gpsLock));
-    // Method deprecated in 2.0 and not expected to be called by the framework.
-    return false;
-}
-
-Return<bool> GnssConfiguration::setLppProfile(hidl_bitfield<LppProfile>) {
-    return true;
-}
-
-Return<bool> GnssConfiguration::setGlonassPositioningProtocol(hidl_bitfield<GlonassPosProtocol>) {
-    return true;
-}
-
-Return<bool> GnssConfiguration::setEmergencySuplPdn(bool) {
-    return true;
-}
-
-// Methods from ::android::hardware::gnss::V1_1::IGnssConfiguration follow.
-Return<bool> GnssConfiguration::setBlacklist(
-        const hidl_vec<V1_1::IGnssConfiguration::BlacklistedSource>&) {
-    // TODO (b/122463906): Reuse 1.1 implementation.
-    return bool{};
-}
-
-// Methods from ::android::hardware::gnss::V2_0::IGnssConfiguration follow.
-Return<bool> GnssConfiguration::setEsExtensionSec(uint32_t emergencyExtensionSeconds) {
-    ALOGD("setEsExtensionSec emergencyExtensionSeconds: %d", emergencyExtensionSeconds);
-    return true;
-}
-
-// Methods from ::android::hardware::gnss::V2_1::IGnssConfiguration follow.
-Return<bool> GnssConfiguration::setBlacklist_2_1(
-        const hidl_vec<BlacklistedSourceV2_1>& sourceList) {
-    std::unique_lock<std::recursive_mutex> lock(mMutex);
-    mBlacklistedConstellationSet.clear();
-    mBlacklistedSourceSet.clear();
-    for (auto source : sourceList) {
-        if (source.svid == 0) {
-            // Wildcard blacklist, i.e., blacklist entire constellation.
-            mBlacklistedConstellationSet.insert(source.constellation);
-        } else {
-            mBlacklistedSourceSet.insert(source);
-        }
-    }
-    return true;
-}
-
-Return<bool> GnssConfiguration::isBlacklistedV2_1(const GnssSvInfoV2_1& gnssSvInfo) const {
-    std::unique_lock<std::recursive_mutex> lock(mMutex);
-    if (mBlacklistedConstellationSet.find(gnssSvInfo.v2_0.constellation) !=
-        mBlacklistedConstellationSet.end()) {
-        return true;
-    }
-    BlacklistedSourceV2_1 source = {.constellation = gnssSvInfo.v2_0.constellation,
-                                    .svid = gnssSvInfo.v2_0.v1_0.svid};
-    return (mBlacklistedSourceSet.find(source) != mBlacklistedSourceSet.end());
-}
-
-}  // namespace android::hardware::gnss::V2_1::implementation
diff --git a/hal/gnss/common/utils/v2_1/GnssDebug.cpp b/hal/gnss/common/utils/v2_1/GnssDebug.cpp
deleted file mode 100644
index 537a90c..0000000
--- a/hal/gnss/common/utils/v2_1/GnssDebug.cpp
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2016 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.
- */
-
-#define LOG_TAG "GnssDebug"
-
-#include <log/log.h>
-
-#include "Constants.h"
-#include "MockLocation.h"
-#include "v2_1/GnssDebug.h"
-
-using namespace ::android::hardware::gnss::common;
-
-namespace android::hardware::gnss::V1_1::implementation {
-
-// Methods from ::android::hardware::gnss::V1_0::IGnssDebug follow.
-Return<void> GnssDebug::getDebugData(V1_0::IGnssDebug::getDebugData_cb _hidl_cb) {
-    PositionDebug positionDebug = {
-            .valid = true,
-            .latitudeDegrees = gMockLatitudeDegrees,
-            .longitudeDegrees = gMockLongitudeDegrees,
-            .altitudeMeters = gMockAltitudeMeters,
-            .speedMetersPerSec = gMockSpeedMetersPerSec,
-            .bearingDegrees = gMockBearingDegrees,
-            .horizontalAccuracyMeters = kMockHorizontalAccuracyMeters,
-            .verticalAccuracyMeters = kMockVerticalAccuracyMeters,
-            .speedAccuracyMetersPerSecond = kMockSpeedAccuracyMetersPerSecond,
-            .bearingAccuracyDegrees = kMockBearingAccuracyDegrees,
-            .ageSeconds = 0.99};
-
-    TimeDebug timeDebug = {.timeEstimate = kMockTimestamp,
-                           .timeUncertaintyNs = 1000,
-                           .frequencyUncertaintyNsPerSec = 5.0e4};
-
-    DebugData data = {.position = positionDebug, .time = timeDebug};
-
-    _hidl_cb(data);
-
-    return Void();
-}
-
-}  // namespace android::hardware::gnss::V1_1::implementation
diff --git a/hal/gnss/common/utils/v2_1/GnssMeasurement.cpp b/hal/gnss/common/utils/v2_1/GnssMeasurement.cpp
deleted file mode 100644
index 887cb5a..0000000
--- a/hal/gnss/common/utils/v2_1/GnssMeasurement.cpp
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * Copyright (C) 2019 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.
- */
-
-#define LOG_TAG "GnssMeasurement"
-
-#include "v2_1/GnssMeasurement.h"
-#include <log/log.h>
-#include "Utils.h"
-
-namespace android::hardware::gnss::V2_1::implementation {
-
-using common::Utils;
-
-sp<V2_1::IGnssMeasurementCallback> GnssMeasurement::sCallback_2_1 = nullptr;
-sp<V2_0::IGnssMeasurementCallback> GnssMeasurement::sCallback_2_0 = nullptr;
-
-GnssMeasurement::GnssMeasurement() : mMinIntervalMillis(1000) {}
-
-GnssMeasurement::~GnssMeasurement() {
-    stop();
-}
-
-// Methods from V1_0::IGnssMeasurement follow.
-Return<V1_0::IGnssMeasurement::GnssMeasurementStatus> GnssMeasurement::setCallback(
-        const sp<V1_0::IGnssMeasurementCallback>&) {
-    // TODO implement
-    return V1_0::IGnssMeasurement::GnssMeasurementStatus{};
-}
-
-Return<void> GnssMeasurement::close() {
-    ALOGD("close");
-    stop();
-    std::unique_lock<std::mutex> lock(mMutex);
-    sCallback_2_1 = nullptr;
-    sCallback_2_0 = nullptr;
-    return Void();
-}
-
-// Methods from V1_1::IGnssMeasurement follow.
-Return<V1_0::IGnssMeasurement::GnssMeasurementStatus> GnssMeasurement::setCallback_1_1(
-        const sp<V1_1::IGnssMeasurementCallback>&, bool) {
-    // TODO implement
-    return V1_0::IGnssMeasurement::GnssMeasurementStatus{};
-}
-
-// Methods from V2_0::IGnssMeasurement follow.
-Return<V1_0::IGnssMeasurement::GnssMeasurementStatus> GnssMeasurement::setCallback_2_0(
-        const sp<V2_0::IGnssMeasurementCallback>& callback, bool) {
-    ALOGD("setCallback_2_0");
-    std::unique_lock<std::mutex> lock(mMutex);
-    sCallback_2_0 = callback;
-
-    if (mIsActive) {
-        ALOGW("GnssMeasurement callback already set. Resetting the callback...");
-        stop();
-    }
-    start();
-
-    return V1_0::IGnssMeasurement::GnssMeasurementStatus::SUCCESS;
-}
-
-// Methods from V2_1::IGnssMeasurement follow.
-Return<V1_0::IGnssMeasurement::GnssMeasurementStatus> GnssMeasurement::setCallback_2_1(
-        const sp<V2_1::IGnssMeasurementCallback>& callback, bool) {
-    ALOGD("setCallback_2_1");
-    std::unique_lock<std::mutex> lock(mMutex);
-    sCallback_2_1 = callback;
-
-    if (mIsActive) {
-        ALOGW("GnssMeasurement callback already set. Resetting the callback...");
-        stop();
-    }
-    start();
-
-    return V1_0::IGnssMeasurement::GnssMeasurementStatus::SUCCESS;
-}
-
-void GnssMeasurement::start() {
-    ALOGD("start");
-    mIsActive = true;
-    mThread = std::thread([this]() {
-        while (mIsActive == true) {
-            if (sCallback_2_1 != nullptr) {
-                auto measurement = Utils::getMockMeasurementV2_1();
-                this->reportMeasurement(measurement);
-            } else {
-                auto measurement = Utils::getMockMeasurementV2_0();
-                this->reportMeasurement(measurement);
-            }
-
-            std::this_thread::sleep_for(std::chrono::milliseconds(mMinIntervalMillis));
-        }
-    });
-}
-
-void GnssMeasurement::stop() {
-    ALOGD("stop");
-    mIsActive = false;
-    if (mThread.joinable()) {
-        mThread.join();
-    }
-}
-
-void GnssMeasurement::reportMeasurement(const V2_0::IGnssMeasurementCallback::GnssData& data) {
-    ALOGD("reportMeasurement()");
-    std::unique_lock<std::mutex> lock(mMutex);
-    if (sCallback_2_0 == nullptr) {
-        ALOGE("%s: GnssMeasurement::sCallback_2_0 is null.", __func__);
-        return;
-    }
-    auto ret = sCallback_2_0->gnssMeasurementCb_2_0(data);
-    if (!ret.isOk()) {
-        ALOGE("%s: Unable to invoke callback", __func__);
-    }
-}
-
-void GnssMeasurement::reportMeasurement(const V2_1::IGnssMeasurementCallback::GnssData& data) {
-    ALOGD("reportMeasurement()");
-    std::unique_lock<std::mutex> lock(mMutex);
-    if (sCallback_2_1 == nullptr) {
-        ALOGE("%s: GnssMeasurement::sCallback_2_1 is null.", __func__);
-        return;
-    }
-    auto ret = sCallback_2_1->gnssMeasurementCb_2_1(data);
-    if (!ret.isOk()) {
-        ALOGE("%s: Unable to invoke callback", __func__);
-    }
-}
-
-}  // namespace android::hardware::gnss::V2_1::implementation
diff --git a/hal/gnss/common/utils/v2_1/GnssMeasurementCorrections.cpp b/hal/gnss/common/utils/v2_1/GnssMeasurementCorrections.cpp
deleted file mode 100644
index 9be7e23..0000000
--- a/hal/gnss/common/utils/v2_1/GnssMeasurementCorrections.cpp
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Copyright (C) 2019 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.
- */
-
-#define LOG_TAG "GnssMeasurementCorrections"
-
-#include "v2_1/GnssMeasurementCorrections.h"
-#include <log/log.h>
-
-namespace android::hardware::gnss::measurement_corrections::V1_1::implementation {
-
-GnssMeasurementCorrections::GnssMeasurementCorrections() {}
-
-GnssMeasurementCorrections::~GnssMeasurementCorrections() {}
-
-// Methods from V1_0::IMeasurementCorrections follow.
-Return<bool> GnssMeasurementCorrections::setCorrections(
-        const V1_0::MeasurementCorrections& corrections) {
-    ALOGD("setCorrections");
-    ALOGD("corrections = lat: %f, lng: %f, alt: %f, hUnc: %f, vUnc: %f, toa: %llu, "
-          "satCorrections.size: %d",
-          corrections.latitudeDegrees, corrections.longitudeDegrees, corrections.altitudeMeters,
-          corrections.horizontalPositionUncertaintyMeters,
-          corrections.verticalPositionUncertaintyMeters,
-          static_cast<unsigned long long>(corrections.toaGpsNanosecondsOfWeek),
-          static_cast<int>(corrections.satCorrections.size()));
-    for (auto singleSatCorrection : corrections.satCorrections) {
-        ALOGD("singleSatCorrection = flags: %d, constellation: %d, svid: %d, cfHz: %f, probLos: %f,"
-              " epl: %f, eplUnc: %f",
-              static_cast<int>(singleSatCorrection.singleSatCorrectionFlags),
-              static_cast<int>(singleSatCorrection.constellation),
-              static_cast<int>(singleSatCorrection.svid), singleSatCorrection.carrierFrequencyHz,
-              singleSatCorrection.probSatIsLos, singleSatCorrection.excessPathLengthMeters,
-              singleSatCorrection.excessPathLengthUncertaintyMeters);
-        ALOGD("reflecting plane = lat: %f, lng: %f, alt: %f, azm: %f",
-              singleSatCorrection.reflectingPlane.latitudeDegrees,
-              singleSatCorrection.reflectingPlane.longitudeDegrees,
-              singleSatCorrection.reflectingPlane.altitudeMeters,
-              singleSatCorrection.reflectingPlane.azimuthDegrees);
-    }
-
-    return true;
-}
-
-Return<bool> GnssMeasurementCorrections::setCallback(
-        const sp<V1_0::IMeasurementCorrectionsCallback>& callback) {
-    using Capabilities = V1_0::IMeasurementCorrectionsCallback::Capabilities;
-    auto ret =
-            callback->setCapabilitiesCb(Capabilities::LOS_SATS | Capabilities::EXCESS_PATH_LENGTH |
-                                        Capabilities::REFLECTING_PLANE);
-    if (!ret.isOk()) {
-        ALOGE("%s: Unable to invoke callback", __func__);
-        return false;
-    }
-    return true;
-}
-
-// Methods from V1_1::IMeasurementCorrections follow.
-Return<bool> GnssMeasurementCorrections::setCorrections_1_1(
-        const V1_1::MeasurementCorrections& corrections) {
-    ALOGD("setCorrections_1_1");
-    ALOGD("corrections = lat: %f, lng: %f, alt: %f, hUnc: %f, vUnc: %f, toa: %llu,"
-          "satCorrections.size: %d, hasEnvironmentBearing: %d, environmentBearingDeg: %f,"
-          "environmentBearingUncDeg: %f",
-          corrections.v1_0.latitudeDegrees, corrections.v1_0.longitudeDegrees,
-          corrections.v1_0.altitudeMeters, corrections.v1_0.horizontalPositionUncertaintyMeters,
-          corrections.v1_0.verticalPositionUncertaintyMeters,
-          static_cast<unsigned long long>(corrections.v1_0.toaGpsNanosecondsOfWeek),
-          static_cast<int>(corrections.v1_0.satCorrections.size()),
-          corrections.hasEnvironmentBearing, corrections.environmentBearingDegrees,
-          corrections.environmentBearingUncertaintyDegrees);
-    for (auto singleSatCorrection : corrections.satCorrections) {
-        ALOGD("singleSatCorrection = flags: %d, constellation: %d, svid: %d, cfHz: %f, probLos: %f,"
-              " epl: %f, eplUnc: %f",
-              static_cast<int>(singleSatCorrection.v1_0.singleSatCorrectionFlags),
-              static_cast<int>(singleSatCorrection.constellation),
-              static_cast<int>(singleSatCorrection.v1_0.svid),
-              singleSatCorrection.v1_0.carrierFrequencyHz, singleSatCorrection.v1_0.probSatIsLos,
-              singleSatCorrection.v1_0.excessPathLengthMeters,
-              singleSatCorrection.v1_0.excessPathLengthUncertaintyMeters);
-        ALOGD("reflecting plane = lat: %f, lng: %f, alt: %f, azm: %f",
-              singleSatCorrection.v1_0.reflectingPlane.latitudeDegrees,
-              singleSatCorrection.v1_0.reflectingPlane.longitudeDegrees,
-              singleSatCorrection.v1_0.reflectingPlane.altitudeMeters,
-              singleSatCorrection.v1_0.reflectingPlane.azimuthDegrees);
-    }
-
-    return true;
-}
-
-}  // namespace android::hardware::gnss::measurement_corrections::V1_1::implementation