Merge "wifi(implementation): Fix spammy log"
diff --git a/atrace/1.0/Android.bp b/atrace/1.0/Android.bp
index f7c9078..4d73cfd 100644
--- a/atrace/1.0/Android.bp
+++ b/atrace/1.0/Android.bp
@@ -13,10 +13,6 @@
     interfaces: [
         "android.hidl.base@1.0",
     ],
-    types: [
-        "Status",
-        "TracingCategory",
-    ],
     gen_java: true,
 }
 
diff --git a/audio/2.0/Android.bp b/audio/2.0/Android.bp
index d6e481f..3495b1a 100644
--- a/audio/2.0/Android.bp
+++ b/audio/2.0/Android.bp
@@ -21,16 +21,6 @@
         "android.hardware.audio.effect@2.0",
         "android.hidl.base@1.0",
     ],
-    types: [
-        "AudioDrain",
-        "DeviceAddress",
-        "MessageQueueFlagBits",
-        "MmapBufferInfo",
-        "MmapPosition",
-        "ParameterValue",
-        "Result",
-        "TimeSpec",
-    ],
     gen_java: false,
     gen_java_constants: true,
 }
diff --git a/audio/4.0/Android.bp b/audio/4.0/Android.bp
index 6e217d9..b97fe01 100644
--- a/audio/4.0/Android.bp
+++ b/audio/4.0/Android.bp
@@ -21,27 +21,6 @@
         "android.hardware.audio.effect@4.0",
         "android.hidl.base@1.0",
     ],
-    types: [
-        "AudioDrain",
-        "AudioFrequencyResponsePoint",
-        "AudioMicrophoneChannelMapping",
-        "AudioMicrophoneCoordinate",
-        "AudioMicrophoneDirectionality",
-        "AudioMicrophoneLocation",
-        "DeviceAddress",
-        "MessageQueueFlagBits",
-        "MicrophoneInfo",
-        "MmapBufferFlag",
-        "MmapBufferInfo",
-        "MmapPosition",
-        "ParameterValue",
-        "PlaybackTrackMetadata",
-        "RecordTrackMetadata",
-        "Result",
-        "SinkMetadata",
-        "SourceMetadata",
-        "TimeSpec",
-    ],
     gen_java: false,
     gen_java_constants: true,
 }
diff --git a/audio/5.0/Android.bp b/audio/5.0/Android.bp
index 7c2db1d..f6ac2eb 100644
--- a/audio/5.0/Android.bp
+++ b/audio/5.0/Android.bp
@@ -22,23 +22,6 @@
         "android.hidl.base@1.0",
         "android.hidl.safe_union@1.0",
     ],
-    types: [
-        "AudioDrain",
-        "AudioFrequencyResponsePoint",
-        "AudioMicrophoneChannelMapping",
-        "AudioMicrophoneCoordinate",
-        "AudioMicrophoneDirectionality",
-        "AudioMicrophoneLocation",
-        "MessageQueueFlagBits",
-        "MicrophoneDirection",
-        "MicrophoneInfo",
-        "MmapBufferFlag",
-        "MmapBufferInfo",
-        "MmapPosition",
-        "ParameterValue",
-        "Result",
-        "TimeSpec",
-    ],
     gen_java: false,
     gen_java_constants: true,
 }
diff --git a/audio/common/2.0/Android.bp b/audio/common/2.0/Android.bp
index 878b594..a64548f 100644
--- a/audio/common/2.0/Android.bp
+++ b/audio/common/2.0/Android.bp
@@ -9,39 +9,6 @@
     srcs: [
         "types.hal",
     ],
-    types: [
-        "AudioChannelMask",
-        "AudioConfig",
-        "AudioDevice",
-        "AudioFormat",
-        "AudioGain",
-        "AudioGainConfig",
-        "AudioGainMode",
-        "AudioHandleConsts",
-        "AudioInputFlag",
-        "AudioInterleave",
-        "AudioMixLatencyClass",
-        "AudioMode",
-        "AudioOffloadInfo",
-        "AudioOutputFlag",
-        "AudioPort",
-        "AudioPortConfig",
-        "AudioPortConfigDeviceExt",
-        "AudioPortConfigMask",
-        "AudioPortConfigSessionExt",
-        "AudioPortDeviceExt",
-        "AudioPortMixExt",
-        "AudioPortRole",
-        "AudioPortSessionExt",
-        "AudioPortType",
-        "AudioSessionConsts",
-        "AudioSource",
-        "AudioStreamType",
-        "AudioUsage",
-        "FixedChannelCount",
-        "ThreadInfo",
-        "Uuid",
-    ],
     gen_java: false,
     gen_java_constants: true,
 }
diff --git a/audio/common/4.0/Android.bp b/audio/common/4.0/Android.bp
index 9b737dc..cd504e5 100644
--- a/audio/common/4.0/Android.bp
+++ b/audio/common/4.0/Android.bp
@@ -9,39 +9,6 @@
     srcs: [
         "types.hal",
     ],
-    types: [
-        "AudioChannelMask",
-        "AudioConfig",
-        "AudioContentType",
-        "AudioDevice",
-        "AudioFormat",
-        "AudioGain",
-        "AudioGainConfig",
-        "AudioGainMode",
-        "AudioHandleConsts",
-        "AudioInputFlag",
-        "AudioMixLatencyClass",
-        "AudioMode",
-        "AudioOffloadInfo",
-        "AudioOutputFlag",
-        "AudioPort",
-        "AudioPortConfig",
-        "AudioPortConfigDeviceExt",
-        "AudioPortConfigMask",
-        "AudioPortConfigSessionExt",
-        "AudioPortDeviceExt",
-        "AudioPortMixExt",
-        "AudioPortRole",
-        "AudioPortSessionExt",
-        "AudioPortType",
-        "AudioSessionConsts",
-        "AudioSource",
-        "AudioStreamType",
-        "AudioUsage",
-        "FixedChannelCount",
-        "ThreadInfo",
-        "Uuid",
-    ],
     gen_java: false,
     gen_java_constants: true,
 }
diff --git a/audio/common/5.0/Android.bp b/audio/common/5.0/Android.bp
index 86d9354..66c6fe8 100644
--- a/audio/common/5.0/Android.bp
+++ b/audio/common/5.0/Android.bp
@@ -12,44 +12,6 @@
     interfaces: [
         "android.hidl.safe_union@1.0",
     ],
-    types: [
-        "AudioChannelMask",
-        "AudioConfig",
-        "AudioContentType",
-        "AudioDevice",
-        "AudioFormat",
-        "AudioGain",
-        "AudioGainConfig",
-        "AudioGainMode",
-        "AudioHandleConsts",
-        "AudioInputFlag",
-        "AudioMixLatencyClass",
-        "AudioMode",
-        "AudioOffloadInfo",
-        "AudioOutputFlag",
-        "AudioPort",
-        "AudioPortConfig",
-        "AudioPortConfigDeviceExt",
-        "AudioPortConfigMask",
-        "AudioPortConfigSessionExt",
-        "AudioPortDeviceExt",
-        "AudioPortMixExt",
-        "AudioPortRole",
-        "AudioPortSessionExt",
-        "AudioPortType",
-        "AudioSessionConsts",
-        "AudioSource",
-        "AudioStreamType",
-        "AudioUsage",
-        "DeviceAddress",
-        "FixedChannelCount",
-        "PlaybackTrackMetadata",
-        "RecordTrackMetadata",
-        "SinkMetadata",
-        "SourceMetadata",
-        "ThreadInfo",
-        "Uuid",
-    ],
     gen_java: false,
     gen_java_constants: true,
 }
diff --git a/audio/effect/2.0/Android.bp b/audio/effect/2.0/Android.bp
index c4f8b06..2dd1a0c 100644
--- a/audio/effect/2.0/Android.bp
+++ b/audio/effect/2.0/Android.bp
@@ -27,20 +27,6 @@
         "android.hardware.audio.common@2.0",
         "android.hidl.base@1.0",
     ],
-    types: [
-        "AudioBuffer",
-        "EffectAuxChannelsConfig",
-        "EffectBufferAccess",
-        "EffectBufferConfig",
-        "EffectConfig",
-        "EffectConfigParameters",
-        "EffectDescriptor",
-        "EffectFeature",
-        "EffectFlags",
-        "EffectOffloadParameter",
-        "MessageQueueFlagBits",
-        "Result",
-    ],
     gen_java: false,
     gen_java_constants: true,
 }
diff --git a/audio/effect/4.0/Android.bp b/audio/effect/4.0/Android.bp
index e7676a9..2c32bcb 100644
--- a/audio/effect/4.0/Android.bp
+++ b/audio/effect/4.0/Android.bp
@@ -27,20 +27,6 @@
         "android.hardware.audio.common@4.0",
         "android.hidl.base@1.0",
     ],
-    types: [
-        "AudioBuffer",
-        "EffectAuxChannelsConfig",
-        "EffectBufferAccess",
-        "EffectBufferConfig",
-        "EffectConfig",
-        "EffectConfigParameters",
-        "EffectDescriptor",
-        "EffectFeature",
-        "EffectFlags",
-        "EffectOffloadParameter",
-        "MessageQueueFlagBits",
-        "Result",
-    ],
     gen_java: false,
     gen_java_constants: true,
 }
diff --git a/audio/effect/5.0/Android.bp b/audio/effect/5.0/Android.bp
index 78b950e..32fe652 100644
--- a/audio/effect/5.0/Android.bp
+++ b/audio/effect/5.0/Android.bp
@@ -28,20 +28,6 @@
         "android.hidl.base@1.0",
         "android.hidl.safe_union@1.0",
     ],
-    types: [
-        "AudioBuffer",
-        "EffectAuxChannelsConfig",
-        "EffectBufferAccess",
-        "EffectBufferConfig",
-        "EffectConfig",
-        "EffectConfigParameters",
-        "EffectDescriptor",
-        "EffectFeature",
-        "EffectFlags",
-        "EffectOffloadParameter",
-        "MessageQueueFlagBits",
-        "Result",
-    ],
     gen_java: false,
     gen_java_constants: true,
 }
diff --git a/automotive/audiocontrol/1.0/Android.bp b/automotive/audiocontrol/1.0/Android.bp
index 9335a6c..7c51cf7 100644
--- a/automotive/audiocontrol/1.0/Android.bp
+++ b/automotive/audiocontrol/1.0/Android.bp
@@ -13,9 +13,6 @@
     interfaces: [
         "android.hidl.base@1.0",
     ],
-    types: [
-        "ContextNumber",
-    ],
     gen_java: true,
 }
 
diff --git a/automotive/evs/1.0/Android.bp b/automotive/evs/1.0/Android.bp
index f620eb5..3ac67ea 100644
--- a/automotive/evs/1.0/Android.bp
+++ b/automotive/evs/1.0/Android.bp
@@ -16,13 +16,6 @@
     interfaces: [
         "android.hidl.base@1.0",
     ],
-    types: [
-        "BufferDesc",
-        "CameraDesc",
-        "DisplayDesc",
-        "DisplayState",
-        "EvsResult",
-    ],
     gen_java: true,
 }
 
diff --git a/biometrics/face/1.0/vts/functional/Android.bp b/biometrics/face/1.0/vts/functional/Android.bp
new file mode 100644
index 0000000..fa68c4e
--- /dev/null
+++ b/biometrics/face/1.0/vts/functional/Android.bp
@@ -0,0 +1,24 @@
+//
+// 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.
+//
+
+cc_test {
+    name: "VtsHalBiometricsFaceV1_0TargetTest",
+    defaults: ["VtsHalTargetTestDefaults"],
+    srcs: ["VtsHalBiometricsFaceV1_0TargetTest.cpp"],
+    static_libs: ["android.hardware.biometrics.face@1.0"],
+    test_suites: ["general-tests"],
+}
+
diff --git a/biometrics/face/1.0/vts/functional/VtsHalBiometricsFaceV1_0TargetTest.cpp b/biometrics/face/1.0/vts/functional/VtsHalBiometricsFaceV1_0TargetTest.cpp
new file mode 100644
index 0000000..f496bbe
--- /dev/null
+++ b/biometrics/face/1.0/vts/functional/VtsHalBiometricsFaceV1_0TargetTest.cpp
@@ -0,0 +1,412 @@
+/*
+ * 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 "face_hidl_test"
+
+#include <VtsHalHidlTargetTestBase.h>
+#include <VtsHalHidlTargetTestEnvBase.h>
+#include <android-base/logging.h>
+#include <android-base/properties.h>
+#include <android/hardware/biometrics/face/1.0/IBiometricsFace.h>
+#include <android/hardware/biometrics/face/1.0/IBiometricsFaceClientCallback.h>
+#include <hidl/HidlSupport.h>
+#include <hidl/HidlTransportSupport.h>
+#include <utils/Condition.h>
+
+#include <cinttypes>
+#include <cstdint>
+#include <future>
+#include <utility>
+
+using android::Condition;
+using android::Mutex;
+using android::sp;
+using android::base::GetUintProperty;
+using android::hardware::hidl_vec;
+using android::hardware::Return;
+using android::hardware::biometrics::face::V1_0::FaceAcquiredInfo;
+using android::hardware::biometrics::face::V1_0::FaceError;
+using android::hardware::biometrics::face::V1_0::Feature;
+using android::hardware::biometrics::face::V1_0::IBiometricsFace;
+using android::hardware::biometrics::face::V1_0::IBiometricsFaceClientCallback;
+using android::hardware::biometrics::face::V1_0::OptionalUint64;
+using android::hardware::biometrics::face::V1_0::Status;
+
+namespace {
+
+const uint32_t kTimeout = 3;
+const std::chrono::seconds kTimeoutInSeconds = std::chrono::seconds(kTimeout);
+const uint32_t kUserId = 99;
+const uint32_t kFaceId = 5;
+const char kTmpDir[] = "/data/system/users/0/facedata";
+const int kIterations = 1000;
+
+const auto kAssertCallbackIsSet = [](const OptionalUint64& res) {
+    ASSERT_EQ(Status::OK, res.status);
+    // Makes sure the "deviceId" represented by "res.value" is not 0.
+    // 0 would mean the HIDL is not available.
+    ASSERT_NE(0UL, res.value);
+};
+
+// Wait for a callback to occur (signaled by the given future) up to the
+// provided timeout. If the future is invalid or the callback does not come
+// within the given time, returns false.
+template <class ReturnType>
+bool waitForCallback(std::future<ReturnType> future,
+                     std::chrono::milliseconds timeout = kTimeoutInSeconds) {
+    auto expiration = std::chrono::system_clock::now() + timeout;
+    EXPECT_TRUE(future.valid());
+    if (future.valid()) {
+        std::future_status status = future.wait_until(expiration);
+        EXPECT_NE(std::future_status::timeout, status) << "Timed out waiting for callback";
+        if (status == std::future_status::ready) {
+            return true;
+        }
+    }
+    return false;
+}
+
+// Base callback implementation that just logs all callbacks by default
+class FaceCallbackBase : public IBiometricsFaceClientCallback {
+  public:
+    Return<void> onEnrollResult(uint64_t, uint32_t, int32_t, uint32_t) override {
+        ALOGD("Enroll callback called.");
+        return Return<void>();
+    }
+
+    Return<void> onAuthenticated(uint64_t, uint32_t, int32_t, const hidl_vec<uint8_t>&) override {
+        ALOGD("Authenticated callback called.");
+        return Return<void>();
+    }
+
+    Return<void> onAcquired(uint64_t, int32_t, FaceAcquiredInfo, int32_t) override {
+        ALOGD("Acquired callback called.");
+        return Return<void>();
+    }
+
+    Return<void> onError(uint64_t, int32_t, FaceError, int32_t) override {
+        ALOGD("Error callback called.");
+        EXPECT_TRUE(false);  // fail any test that triggers an error
+        return Return<void>();
+    }
+
+    Return<void> onRemoved(uint64_t, uint32_t, int32_t, uint32_t) override {
+        ALOGD("Removed callback called.");
+        return Return<void>();
+    }
+
+    Return<void> onEnumerate(uint64_t, const hidl_vec<uint32_t>&, int32_t /* userId */) override {
+        ALOGD("Enumerate callback called.");
+        return Return<void>();
+    }
+
+    Return<void> onLockoutChanged(uint64_t) override {
+        ALOGD("LockoutChanged callback called.");
+        return Return<void>();
+    }
+};
+
+class EnumerateCallback : public FaceCallbackBase {
+  public:
+    Return<void> onEnumerate(uint64_t, const hidl_vec<uint32_t>&, int32_t) override {
+        promise.set_value();
+        return Return<void>();
+    }
+
+    std::promise<void> promise;
+};
+
+class ErrorCallback : public FaceCallbackBase {
+  public:
+    ErrorCallback(bool filterErrors = false, FaceError errorType = FaceError::HW_UNAVAILABLE)
+        : filterErrors(filterErrors), errorType(errorType), hasError(false) {}
+
+    Return<void> onError(uint64_t, int32_t, FaceError error, int32_t) override {
+        if ((filterErrors && errorType == error) || !filterErrors) {
+            hasError = true;
+            this->error = error;
+            promise.set_value();
+        }
+        return Return<void>();
+    }
+
+    bool filterErrors;
+    FaceError errorType;
+    bool hasError;
+    FaceError error;
+    std::promise<void> promise;
+};
+
+class RemoveCallback : public FaceCallbackBase {
+  public:
+    explicit RemoveCallback(int32_t userId) : removeUserId(userId) {}
+
+    Return<void> onRemoved(uint64_t, uint32_t, int32_t userId, uint32_t remaining) override {
+        EXPECT_EQ(removeUserId, userId);
+        promise.set_value();
+        if (remaining == 0UL) {
+            promise.set_value();
+        }
+        return Return<void>();
+    }
+
+    int32_t removeUserId;
+    std::promise<void> promise;
+};
+
+// Test environment for Face HIDL HAL.
+class FaceHidlEnvironment : public ::testing::VtsHalHidlTargetTestEnvBase {
+  public:
+    // get the test environment singleton
+    static FaceHidlEnvironment* Instance() {
+        static FaceHidlEnvironment* instance = new FaceHidlEnvironment;
+        return instance;
+    }
+
+    void registerTestServices() override { registerTestService<IBiometricsFace>(); }
+};
+
+class FaceHidlTest : public ::testing::VtsHalHidlTargetTestBase {
+  public:
+    void SetUp() override {
+        mService = ::testing::VtsHalHidlTargetTestBase::getService<IBiometricsFace>(
+                FaceHidlEnvironment::Instance()->getServiceName<IBiometricsFace>());
+        ASSERT_FALSE(mService == nullptr);
+        Return<Status> res = mService->setActiveUser(kUserId, kTmpDir);
+        ASSERT_EQ(Status::OK, static_cast<Status>(res));
+    }
+
+    void TearDown() override {}
+
+    sp<IBiometricsFace> mService;
+};
+
+// The service should be reachable.
+TEST_F(FaceHidlTest, ConnectTest) {
+    sp<FaceCallbackBase> cb = new FaceCallbackBase();
+    mService->setCallback(cb, kAssertCallbackIsSet);
+}
+
+// Starting the service with null callback should succeed.
+TEST_F(FaceHidlTest, ConnectNullTest) {
+    mService->setCallback(nullptr, kAssertCallbackIsSet);
+}
+
+// generateChallenge should always return a unique, cryptographically secure,
+// non-zero number.
+TEST_F(FaceHidlTest, GenerateChallengeTest) {
+    std::map<uint64_t, int> m;
+    for (int i = 0; i < kIterations; ++i) {
+        mService->generateChallenge(kTimeout, [&m](const OptionalUint64& res) {
+            ASSERT_EQ(Status::OK, res.status);
+            EXPECT_NE(0UL, res.value);
+            m[res.value]++;
+            EXPECT_EQ(1UL, m[res.value]);
+        });
+    }
+}
+
+// enroll with an invalid (all zeroes) HAT should fail.
+TEST_F(FaceHidlTest, EnrollZeroHatTest) {
+    sp<ErrorCallback> cb = new ErrorCallback();
+    mService->setCallback(cb, kAssertCallbackIsSet);
+
+    hidl_vec<uint8_t> token(69);
+    for (size_t i = 0; i < 69; i++) {
+        token[i] = 0;
+    }
+
+    Return<Status> res = mService->enroll(token, kTimeout, {});
+    ASSERT_EQ(Status::OK, static_cast<Status>(res));
+
+    // At least one call to onError should occur
+    ASSERT_TRUE(waitForCallback(cb->promise.get_future()));
+    ASSERT_TRUE(cb->hasError);
+}
+
+// enroll with an invalid HAT should fail.
+TEST_F(FaceHidlTest, EnrollGarbageHatTest) {
+    sp<ErrorCallback> cb = new ErrorCallback();
+    mService->setCallback(cb, kAssertCallbackIsSet);
+
+    // Filling HAT with invalid data
+    hidl_vec<uint8_t> token(69);
+    for (size_t i = 0; i < 69; ++i) {
+        token[i] = i;
+    }
+
+    Return<Status> res = mService->enroll(token, kTimeout, {});
+    ASSERT_EQ(Status::OK, static_cast<Status>(res));
+
+    // At least one call to onError should occur
+    ASSERT_TRUE(waitForCallback(cb->promise.get_future()));
+    ASSERT_TRUE(cb->hasError);
+}
+
+// setFeature with an invalid (all zeros) HAT should fail.
+TEST_F(FaceHidlTest, SetFeatureZeroHatTest) {
+    sp<ErrorCallback> cb = new ErrorCallback();
+    mService->setCallback(cb, kAssertCallbackIsSet);
+
+    hidl_vec<uint8_t> token(69);
+    for (size_t i = 0; i < 69; i++) {
+        token[i] = 0;
+    }
+
+    Return<Status> res = mService->setFeature(Feature::REQUIRE_DIVERSITY, false, token);
+    ASSERT_EQ(Status::OK, static_cast<Status>(res));
+
+    // At least one call to onError should occur
+    ASSERT_TRUE(waitForCallback(cb->promise.get_future()));
+    ASSERT_TRUE(cb->hasError);
+}
+
+// setFeature with an invalid HAT should fail.
+TEST_F(FaceHidlTest, SetFeatureGarbageHatTest) {
+    sp<ErrorCallback> cb = new ErrorCallback();
+    mService->setCallback(cb, kAssertCallbackIsSet);
+
+    // Filling HAT with invalid data
+    hidl_vec<uint8_t> token(69);
+    for (size_t i = 0; i < 69; ++i) {
+        token[i] = i;
+    }
+
+    Return<Status> res = mService->setFeature(Feature::REQUIRE_DIVERSITY, false, token);
+    ASSERT_EQ(Status::OK, static_cast<Status>(res));
+
+    // At least one call to onError should occur
+    ASSERT_TRUE(waitForCallback(cb->promise.get_future()));
+    ASSERT_TRUE(cb->hasError);
+}
+
+// getFeature by default should return true for REQUIRE_ATTENTION.
+TEST_F(FaceHidlTest, GetFeatureRequireAttentionTest) {
+    Return<bool> res = mService->getFeature(Feature::REQUIRE_ATTENTION);
+    ASSERT_EQ(true, static_cast<bool>(res));
+}
+
+// getFeature by default should return true for REQUIRE_DIVERSITY.
+TEST_F(FaceHidlTest, GetFeatureRequireDiversityTest) {
+    Return<bool> res = mService->getFeature(Feature::REQUIRE_DIVERSITY);
+    ASSERT_EQ(true, static_cast<bool>(res));
+}
+
+// revokeChallenge should always return within the timeout
+TEST_F(FaceHidlTest, RevokeChallengeTest) {
+    sp<FaceCallbackBase> cb = new FaceCallbackBase();
+    mService->setCallback(cb, kAssertCallbackIsSet);
+
+    auto start = std::chrono::system_clock::now();
+    mService->revokeChallenge();
+    auto elapsed = std::chrono::system_clock::now() - start;
+    ASSERT_GE(kTimeoutInSeconds, elapsed);
+}
+
+// The call to getAuthenticatorId should succeed.
+TEST_F(FaceHidlTest, GetAuthenticatorIdTest) {
+    mService->getAuthenticatorId(
+            [](const OptionalUint64& res) { ASSERT_EQ(Status::OK, res.status); });
+}
+
+// The call to enumerate should succeed.
+TEST_F(FaceHidlTest, EnumerateTest) {
+    sp<EnumerateCallback> cb = new EnumerateCallback();
+    mService->setCallback(cb, kAssertCallbackIsSet);
+    Return<Status> res = mService->enumerate();
+    ASSERT_EQ(Status::OK, static_cast<Status>(res));
+    ASSERT_TRUE(waitForCallback(cb->promise.get_future()));
+}
+
+// The call to remove should succeed for any faceId
+TEST_F(FaceHidlTest, RemoveFaceTest) {
+    sp<ErrorCallback> cb = new ErrorCallback();
+    mService->setCallback(cb, kAssertCallbackIsSet);
+
+    // Remove a face
+    Return<Status> res = mService->remove(kFaceId);
+    ASSERT_EQ(Status::OK, static_cast<Status>(res));
+}
+
+// Remove should accept 0 to delete all faces
+TEST_F(FaceHidlTest, RemoveAllFacesTest) {
+    sp<ErrorCallback> cb = new ErrorCallback();
+    mService->setCallback(cb, kAssertCallbackIsSet);
+
+    // Remove all faces
+    Return<Status> res = mService->remove(0);
+    ASSERT_EQ(Status::OK, static_cast<Status>(res));
+}
+
+// Active user should successfully set to a writable location.
+TEST_F(FaceHidlTest, SetActiveUserTest) {
+    // Create an active user
+    Return<Status> res = mService->setActiveUser(2, kTmpDir);
+    ASSERT_EQ(Status::OK, static_cast<Status>(res));
+
+    // Reset active user
+    res = mService->setActiveUser(kUserId, kTmpDir);
+    ASSERT_EQ(Status::OK, static_cast<Status>(res));
+}
+
+// Active user should fail to set to an unwritable location.
+TEST_F(FaceHidlTest, SetActiveUserUnwritableTest) {
+    // Create an active user to an unwritable location (device root dir)
+    Return<Status> res = mService->setActiveUser(3, "/");
+    ASSERT_NE(Status::OK, static_cast<Status>(res));
+
+    // Reset active user
+    res = mService->setActiveUser(kUserId, kTmpDir);
+    ASSERT_EQ(Status::OK, static_cast<Status>(res));
+}
+
+// Active user should fail to set to a null location.
+TEST_F(FaceHidlTest, SetActiveUserNullTest) {
+    // Create an active user to a null location.
+    Return<Status> res = mService->setActiveUser(4, nullptr);
+    ASSERT_NE(Status::OK, static_cast<Status>(res));
+
+    // Reset active user
+    res = mService->setActiveUser(kUserId, kTmpDir);
+    ASSERT_EQ(Status::OK, static_cast<Status>(res));
+}
+
+// Cancel should always return CANCELED from any starting state including
+// the IDLE state.
+TEST_F(FaceHidlTest, CancelTest) {
+    sp<ErrorCallback> cb = new ErrorCallback(true, FaceError::CANCELED);
+    mService->setCallback(cb, kAssertCallbackIsSet);
+
+    Return<Status> res = mService->cancel();
+    // check that we were able to make an IPC request successfully
+    ASSERT_EQ(Status::OK, static_cast<Status>(res));
+
+    // make sure callback was invoked within kTimeoutInSeconds
+    ASSERT_TRUE(waitForCallback(cb->promise.get_future()));
+    // check error should be CANCELED
+    ASSERT_EQ(FaceError::CANCELED, cb->error);
+}
+
+}  // anonymous namespace
+
+int main(int argc, char** argv) {
+    ::testing::AddGlobalTestEnvironment(FaceHidlEnvironment::Instance());
+    ::testing::InitGoogleTest(&argc, argv);
+    FaceHidlEnvironment::Instance()->init(&argc, argv);
+    int status = RUN_ALL_TESTS();
+    LOG(INFO) << "Test result = " << status;
+    return status;
+}
diff --git a/biometrics/fingerprint/2.1/Android.bp b/biometrics/fingerprint/2.1/Android.bp
index dbcce92..cff43c4 100644
--- a/biometrics/fingerprint/2.1/Android.bp
+++ b/biometrics/fingerprint/2.1/Android.bp
@@ -14,17 +14,6 @@
     interfaces: [
         "android.hidl.base@1.0",
     ],
-    types: [
-        "FingerprintAcquired",
-        "FingerprintAcquiredInfo",
-        "FingerprintAuthenticated",
-        "FingerprintEnroll",
-        "FingerprintError",
-        "FingerprintFingerId",
-        "FingerprintIterator",
-        "FingerprintMsgType",
-        "RequestStatus",
-    ],
     gen_java: true,
 }
 
diff --git a/bluetooth/1.0/Android.bp b/bluetooth/1.0/Android.bp
index 49df8a3..67f1a4f 100644
--- a/bluetooth/1.0/Android.bp
+++ b/bluetooth/1.0/Android.bp
@@ -14,9 +14,6 @@
     interfaces: [
         "android.hidl.base@1.0",
     ],
-    types: [
-        "Status",
-    ],
     gen_java: true,
 }
 
diff --git a/bluetooth/a2dp/1.0/Android.bp b/bluetooth/a2dp/1.0/Android.bp
index 5e85290..fa46a1c 100644
--- a/bluetooth/a2dp/1.0/Android.bp
+++ b/bluetooth/a2dp/1.0/Android.bp
@@ -14,14 +14,6 @@
     interfaces: [
         "android.hidl.base@1.0",
     ],
-    types: [
-        "BitsPerSample",
-        "ChannelMode",
-        "CodecConfiguration",
-        "CodecType",
-        "SampleRate",
-        "Status",
-    ],
     gen_java: false,
 }
 
diff --git a/bluetooth/audio/2.0/Android.bp b/bluetooth/audio/2.0/Android.bp
index e72b6ab..a020f22 100644
--- a/bluetooth/audio/2.0/Android.bp
+++ b/bluetooth/audio/2.0/Android.bp
@@ -17,32 +17,6 @@
         "android.hidl.base@1.0",
         "android.hidl.safe_union@1.0",
     ],
-    types: [
-        "AacObjectType",
-        "AacParameters",
-        "AacVariableBitRate",
-        "AptxParameters",
-        "AudioCapabilities",
-        "AudioConfiguration",
-        "BitsPerSample",
-        "ChannelMode",
-        "CodecCapabilities",
-        "CodecConfiguration",
-        "CodecType",
-        "LdacChannelMode",
-        "LdacParameters",
-        "LdacQualityIndex",
-        "PcmParameters",
-        "SampleRate",
-        "SbcAllocMethod",
-        "SbcBlockLength",
-        "SbcChannelMode",
-        "SbcNumSubbands",
-        "SbcParameters",
-        "SessionType",
-        "Status",
-        "TimeSpec",
-    ],
     gen_java: false,
 }
 
diff --git a/boot/1.0/Android.bp b/boot/1.0/Android.bp
index 85c3b61..b580cac 100644
--- a/boot/1.0/Android.bp
+++ b/boot/1.0/Android.bp
@@ -13,10 +13,6 @@
     interfaces: [
         "android.hidl.base@1.0",
     ],
-    types: [
-        "BoolResult",
-        "CommandResult",
-    ],
     gen_java: true,
 }
 
diff --git a/broadcastradio/1.0/Android.bp b/broadcastradio/1.0/Android.bp
index ecfecc4..76e580e 100644
--- a/broadcastradio/1.0/Android.bp
+++ b/broadcastradio/1.0/Android.bp
@@ -16,23 +16,6 @@
     interfaces: [
         "android.hidl.base@1.0",
     ],
-    types: [
-        "AmBandConfig",
-        "Band",
-        "BandConfig",
-        "Class",
-        "Deemphasis",
-        "Direction",
-        "FmBandConfig",
-        "MetaData",
-        "MetaDataClock",
-        "MetadataKey",
-        "MetadataType",
-        "ProgramInfo",
-        "Properties",
-        "Rds",
-        "Result",
-    ],
     gen_java: false,
 }
 
diff --git a/broadcastradio/1.1/Android.bp b/broadcastradio/1.1/Android.bp
index 1d59105..2186b9a 100644
--- a/broadcastradio/1.1/Android.bp
+++ b/broadcastradio/1.1/Android.bp
@@ -17,18 +17,6 @@
         "android.hardware.broadcastradio@1.0",
         "android.hidl.base@1.0",
     ],
-    types: [
-        "IdentifierType",
-        "Modulation",
-        "ProgramIdentifier",
-        "ProgramInfo",
-        "ProgramInfoFlags",
-        "ProgramListResult",
-        "ProgramSelector",
-        "ProgramType",
-        "Properties",
-        "VendorKeyValue",
-    ],
     gen_java: false,
 }
 
diff --git a/broadcastradio/2.0/Android.bp b/broadcastradio/2.0/Android.bp
index 2434fdc..93afc02 100644
--- a/broadcastradio/2.0/Android.bp
+++ b/broadcastradio/2.0/Android.bp
@@ -17,29 +17,6 @@
     interfaces: [
         "android.hidl.base@1.0",
     ],
-    types: [
-        "AmFmBandRange",
-        "AmFmRegionConfig",
-        "Announcement",
-        "AnnouncementType",
-        "ConfigFlag",
-        "Constants",
-        "DabTableEntry",
-        "Deemphasis",
-        "IdentifierType",
-        "Metadata",
-        "MetadataKey",
-        "ProgramFilter",
-        "ProgramIdentifier",
-        "ProgramInfo",
-        "ProgramInfoFlags",
-        "ProgramListChunk",
-        "ProgramSelector",
-        "Properties",
-        "Rds",
-        "Result",
-        "VendorKeyValue",
-    ],
     gen_java: true,
 }
 
diff --git a/camera/common/1.0/Android.bp b/camera/common/1.0/Android.bp
index c42e054..fe29774 100644
--- a/camera/common/1.0/Android.bp
+++ b/camera/common/1.0/Android.bp
@@ -9,17 +9,6 @@
     srcs: [
         "types.hal",
     ],
-    types: [
-        "CameraDeviceStatus",
-        "CameraMetadataType",
-        "CameraResourceCost",
-        "Status",
-        "TagBoundaryId",
-        "TorchMode",
-        "TorchModeStatus",
-        "VendorTag",
-        "VendorTagSection",
-    ],
     gen_java: true,
 }
 
diff --git a/camera/device/1.0/Android.bp b/camera/device/1.0/Android.bp
index b08f873..a8df1ec 100644
--- a/camera/device/1.0/Android.bp
+++ b/camera/device/1.0/Android.bp
@@ -17,18 +17,6 @@
         "android.hardware.graphics.common@1.0",
         "android.hidl.base@1.0",
     ],
-    types: [
-        "CameraFace",
-        "CameraFacing",
-        "CameraFrameMetadata",
-        "CameraInfo",
-        "CommandType",
-        "DataCallbackMsg",
-        "FrameCallbackFlag",
-        "HandleTimestampMessage",
-        "NotifyCallbackMsg",
-        "VideoFrameMessage",
-    ],
     gen_java: true,
 }
 
diff --git a/camera/device/3.2/Android.bp b/camera/device/3.2/Android.bp
index a8a164e..e7546de 100644
--- a/camera/device/3.2/Android.bp
+++ b/camera/device/3.2/Android.bp
@@ -17,28 +17,6 @@
         "android.hardware.graphics.common@1.0",
         "android.hidl.base@1.0",
     ],
-    types: [
-        "BufferCache",
-        "BufferStatus",
-        "CameraBlob",
-        "CameraBlobId",
-        "CaptureRequest",
-        "CaptureResult",
-        "ErrorCode",
-        "ErrorMsg",
-        "HalStream",
-        "HalStreamConfiguration",
-        "MsgType",
-        "NotifyMsg",
-        "RequestTemplate",
-        "ShutterMsg",
-        "Stream",
-        "StreamBuffer",
-        "StreamConfiguration",
-        "StreamConfigurationMode",
-        "StreamRotation",
-        "StreamType",
-    ],
     gen_java: false,
 }
 
diff --git a/camera/device/3.3/Android.bp b/camera/device/3.3/Android.bp
index f006f79..e21824f 100644
--- a/camera/device/3.3/Android.bp
+++ b/camera/device/3.3/Android.bp
@@ -16,10 +16,6 @@
         "android.hardware.graphics.common@1.0",
         "android.hidl.base@1.0",
     ],
-    types: [
-        "HalStream",
-        "HalStreamConfiguration",
-    ],
     gen_java: false,
 }
 
diff --git a/camera/device/3.4/Android.bp b/camera/device/3.4/Android.bp
index 2c649ba..6a2eac5 100644
--- a/camera/device/3.4/Android.bp
+++ b/camera/device/3.4/Android.bp
@@ -18,16 +18,6 @@
         "android.hardware.graphics.common@1.0",
         "android.hidl.base@1.0",
     ],
-    types: [
-        "CaptureRequest",
-        "CaptureResult",
-        "HalStream",
-        "HalStreamConfiguration",
-        "PhysicalCameraMetadata",
-        "PhysicalCameraSetting",
-        "Stream",
-        "StreamConfiguration",
-    ],
     gen_java: false,
 }
 
diff --git a/camera/metadata/3.2/Android.bp b/camera/metadata/3.2/Android.bp
index bce2c9b..3271d91 100644
--- a/camera/metadata/3.2/Android.bp
+++ b/camera/metadata/3.2/Android.bp
@@ -9,72 +9,6 @@
     srcs: [
         "types.hal",
     ],
-    types: [
-        "CameraMetadataEnumAndroidBlackLevelLock",
-        "CameraMetadataEnumAndroidColorCorrectionAberrationMode",
-        "CameraMetadataEnumAndroidColorCorrectionMode",
-        "CameraMetadataEnumAndroidControlAeAntibandingMode",
-        "CameraMetadataEnumAndroidControlAeLock",
-        "CameraMetadataEnumAndroidControlAeLockAvailable",
-        "CameraMetadataEnumAndroidControlAeMode",
-        "CameraMetadataEnumAndroidControlAePrecaptureTrigger",
-        "CameraMetadataEnumAndroidControlAeState",
-        "CameraMetadataEnumAndroidControlAfMode",
-        "CameraMetadataEnumAndroidControlAfState",
-        "CameraMetadataEnumAndroidControlAfTrigger",
-        "CameraMetadataEnumAndroidControlAwbLock",
-        "CameraMetadataEnumAndroidControlAwbLockAvailable",
-        "CameraMetadataEnumAndroidControlAwbMode",
-        "CameraMetadataEnumAndroidControlAwbState",
-        "CameraMetadataEnumAndroidControlCaptureIntent",
-        "CameraMetadataEnumAndroidControlEffectMode",
-        "CameraMetadataEnumAndroidControlEnableZsl",
-        "CameraMetadataEnumAndroidControlMode",
-        "CameraMetadataEnumAndroidControlSceneMode",
-        "CameraMetadataEnumAndroidControlVideoStabilizationMode",
-        "CameraMetadataEnumAndroidDemosaicMode",
-        "CameraMetadataEnumAndroidDepthAvailableDepthStreamConfigurations",
-        "CameraMetadataEnumAndroidDepthDepthIsExclusive",
-        "CameraMetadataEnumAndroidEdgeMode",
-        "CameraMetadataEnumAndroidFlashInfoAvailable",
-        "CameraMetadataEnumAndroidFlashMode",
-        "CameraMetadataEnumAndroidFlashState",
-        "CameraMetadataEnumAndroidHotPixelMode",
-        "CameraMetadataEnumAndroidInfoSupportedHardwareLevel",
-        "CameraMetadataEnumAndroidLedAvailableLeds",
-        "CameraMetadataEnumAndroidLedTransmit",
-        "CameraMetadataEnumAndroidLensFacing",
-        "CameraMetadataEnumAndroidLensInfoFocusDistanceCalibration",
-        "CameraMetadataEnumAndroidLensOpticalStabilizationMode",
-        "CameraMetadataEnumAndroidLensState",
-        "CameraMetadataEnumAndroidNoiseReductionMode",
-        "CameraMetadataEnumAndroidQuirksPartialResult",
-        "CameraMetadataEnumAndroidRequestAvailableCapabilities",
-        "CameraMetadataEnumAndroidRequestMetadataMode",
-        "CameraMetadataEnumAndroidRequestType",
-        "CameraMetadataEnumAndroidScalerAvailableFormats",
-        "CameraMetadataEnumAndroidScalerAvailableStreamConfigurations",
-        "CameraMetadataEnumAndroidScalerCroppingType",
-        "CameraMetadataEnumAndroidSensorInfoColorFilterArrangement",
-        "CameraMetadataEnumAndroidSensorInfoLensShadingApplied",
-        "CameraMetadataEnumAndroidSensorInfoTimestampSource",
-        "CameraMetadataEnumAndroidSensorReferenceIlluminant1",
-        "CameraMetadataEnumAndroidSensorTestPatternMode",
-        "CameraMetadataEnumAndroidShadingMode",
-        "CameraMetadataEnumAndroidStatisticsFaceDetectMode",
-        "CameraMetadataEnumAndroidStatisticsHistogramMode",
-        "CameraMetadataEnumAndroidStatisticsHotPixelMapMode",
-        "CameraMetadataEnumAndroidStatisticsLensShadingMapMode",
-        "CameraMetadataEnumAndroidStatisticsSceneFlicker",
-        "CameraMetadataEnumAndroidStatisticsSharpnessMapMode",
-        "CameraMetadataEnumAndroidSyncFrameNumber",
-        "CameraMetadataEnumAndroidSyncMaxLatency",
-        "CameraMetadataEnumAndroidTonemapMode",
-        "CameraMetadataEnumAndroidTonemapPresetCurve",
-        "CameraMetadataSection",
-        "CameraMetadataSectionStart",
-        "CameraMetadataTag",
-    ],
     gen_java: true,
 }
 
diff --git a/camera/metadata/3.3/Android.bp b/camera/metadata/3.3/Android.bp
index ad6f141..4dddfad 100644
--- a/camera/metadata/3.3/Android.bp
+++ b/camera/metadata/3.3/Android.bp
@@ -12,20 +12,6 @@
     interfaces: [
         "android.hardware.camera.metadata@3.2",
     ],
-    types: [
-        "CameraMetadataEnumAndroidControlAeMode",
-        "CameraMetadataEnumAndroidControlAfSceneChange",
-        "CameraMetadataEnumAndroidControlCaptureIntent",
-        "CameraMetadataEnumAndroidDistortionCorrectionMode",
-        "CameraMetadataEnumAndroidInfoSupportedHardwareLevel",
-        "CameraMetadataEnumAndroidLensPoseReference",
-        "CameraMetadataEnumAndroidLogicalMultiCameraSensorSyncType",
-        "CameraMetadataEnumAndroidRequestAvailableCapabilities",
-        "CameraMetadataEnumAndroidStatisticsOisDataMode",
-        "CameraMetadataSection",
-        "CameraMetadataSectionStart",
-        "CameraMetadataTag",
-    ],
     gen_java: true,
 }
 
diff --git a/cas/1.0/Android.bp b/cas/1.0/Android.bp
index 39b36be..8d8e946 100644
--- a/cas/1.0/Android.bp
+++ b/cas/1.0/Android.bp
@@ -16,10 +16,6 @@
     interfaces: [
         "android.hidl.base@1.0",
     ],
-    types: [
-        "HidlCasPluginDescriptor",
-        "Status",
-    ],
     gen_java: true,
 }
 
diff --git a/cas/native/1.0/Android.bp b/cas/native/1.0/Android.bp
index 7587416..880eccd 100644
--- a/cas/native/1.0/Android.bp
+++ b/cas/native/1.0/Android.bp
@@ -14,13 +14,6 @@
         "android.hardware.cas@1.0",
         "android.hidl.base@1.0",
     ],
-    types: [
-        "BufferType",
-        "DestinationBuffer",
-        "ScramblingControl",
-        "SharedBuffer",
-        "SubSample",
-    ],
     gen_java: false,
 }
 
diff --git a/compatibility_matrices/compatibility_matrix.current.xml b/compatibility_matrices/compatibility_matrix.current.xml
index 244d7a0..566bd48 100644
--- a/compatibility_matrices/compatibility_matrix.current.xml
+++ b/compatibility_matrices/compatibility_matrix.current.xml
@@ -127,9 +127,9 @@
             <instance>default</instance>
         </interface>
     </hal>
-    <hal format="hidl" optional="false">
+    <hal format="hidl" optional="true">
         <name>android.hardware.configstore</name>
-        <version>1.2</version>
+        <version>1.1</version>
         <interface>
             <name>ISurfaceFlingerConfigs</name>
             <instance>default</instance>
diff --git a/configstore/1.0/Android.bp b/configstore/1.0/Android.bp
index 5e98e5c..a6fd656 100644
--- a/configstore/1.0/Android.bp
+++ b/configstore/1.0/Android.bp
@@ -13,14 +13,6 @@
     interfaces: [
         "android.hidl.base@1.0",
     ],
-    types: [
-        "OptionalBool",
-        "OptionalInt32",
-        "OptionalInt64",
-        "OptionalString",
-        "OptionalUInt32",
-        "OptionalUInt64",
-    ],
     gen_java: true,
 }
 
diff --git a/configstore/1.1/Android.bp b/configstore/1.1/Android.bp
index 2b6e6fa..3900d9b 100644
--- a/configstore/1.1/Android.bp
+++ b/configstore/1.1/Android.bp
@@ -14,10 +14,6 @@
         "android.hardware.configstore@1.0",
         "android.hidl.base@1.0",
     ],
-    types: [
-        "DisplayOrientation",
-        "OptionalDisplayOrientation",
-    ],
     gen_java: true,
 }
 
diff --git a/confirmationui/1.0/Android.bp b/confirmationui/1.0/Android.bp
index 21acecb..e6b0414 100644
--- a/confirmationui/1.0/Android.bp
+++ b/confirmationui/1.0/Android.bp
@@ -15,13 +15,6 @@
         "android.hardware.keymaster@4.0",
         "android.hidl.base@1.0",
     ],
-    types: [
-        "MessageSize",
-        "ResponseCode",
-        "TestKeyBits",
-        "TestModeCommands",
-        "UIOption",
-    ],
     gen_java: false,
 }
 
diff --git a/contexthub/1.0/Android.bp b/contexthub/1.0/Android.bp
index 77dba66..730adcb 100644
--- a/contexthub/1.0/Android.bp
+++ b/contexthub/1.0/Android.bp
@@ -14,22 +14,6 @@
     interfaces: [
         "android.hidl.base@1.0",
     ],
-    types: [
-        "AsyncEventType",
-        "ContextHub",
-        "ContextHubMsg",
-        "HostEndPoint",
-        "HubAppInfo",
-        "HubMemoryFlag",
-        "HubMemoryType",
-        "MemRange",
-        "NanoAppBinary",
-        "NanoAppFlags",
-        "PhysicalSensor",
-        "Result",
-        "SensorType",
-        "TransactionResult",
-    ],
     gen_java: true,
 }
 
diff --git a/current.txt b/current.txt
index caadefe..bb9b22f 100644
--- a/current.txt
+++ b/current.txt
@@ -492,7 +492,7 @@
 aee53b2865b4f7939fb3df6fae758d9750c14f93dd454b479fc74aa7978fda4f android.hardware.media.bufferpool@2.0::IConnection
 0bf3758eeeb05767830ea87041214be80968c4679fb73577ac5b3091841ee71f android.hardware.media.bufferpool@2.0::IObserver
 82255e252ae215382473ad2e5ac7a2814a439a24f0092551aad7a2f89c6e9546 android.hardware.media.bufferpool@2.0::types
-fd4725732511b8ae124b868fd0b2090386663dffc5e67dfd0d0b4a0b49c335db android.hardware.media.c2@1.0::IComponent
+277161ea99236a0858e9fcc021c357db03be2de500acf5701d125e73e3e8071a android.hardware.media.c2@1.0::IComponent
 389d06e4a4ecf60f828a260045b0c327a5ae883ee0856a3c054556dd22b1f450 android.hardware.media.c2@1.0::IComponentInterface
 5ee0c02265c5505ade189796bef46697df4e0563e3544bb0c934855b34694b07 android.hardware.media.c2@1.0::IComponentListener
 43d70bcdc63b3d042bac3c3297f5d941dfabbd08f3ceb96b6016cc14f6e34ba3 android.hardware.media.c2@1.0::IComponentStore
@@ -512,14 +512,14 @@
 abf98c2ae08bf765db54edc8068e36d52eb558cff6706b6fd7c18c65a1f3fc18 android.hardware.nfc@1.2::types
 4cb252dc6372a874aef666b92a6e9529915aa187521a700f0789065c3c702ead android.hardware.power.stats@1.0::IPowerStats
 2043037d5baaff604805757d06979aa861013a1e87430db745265339a8681f79 android.hardware.power.stats@1.0::types
-d5545a4090e5cf8b7f844121377d580926cb9137d693d8c66772ef99ca23e514 android.hardware.radio@1.3::IRadio
+a1c6b0761bcb89d6bf15a156f9306b8090b3a916a15fea1689b4b0c1738e382f android.hardware.radio@1.3::IRadio
 e9d0f11a52715f5a29d89e2d8e2e21db1e16a43174af6b9d51a62d705cda1455 android.hardware.radio@1.3::IRadioIndication
 d233f0da44f55fdef0a95db5229231412787bb67695cd1ea197ce89a3c2908b9 android.hardware.radio@1.3::IRadioResponse
 750a363c8cec70baa1aac19e275c15233c5898e93c6bb5155fa2ca7f365490dc android.hardware.radio@1.3::types
 4ac73ec1e4cfa535209e5e22547f08beb20ef812b4a29d0824780f52cbe2324d android.hardware.radio@1.4::IRadio
 33d9e6895cca98aa56296bb01720d18b8acd0e4de4960beb712e63ad147438a5 android.hardware.radio@1.4::IRadioIndication
 0cc0dd87c634aad36d7df22b2832839ef7ded71909dbcde11cfdd69dc0dc52b8 android.hardware.radio@1.4::IRadioResponse
-29d34232cc3974626b08759e039fe788bded7695cdeb098458e3e11e4c7d3603 android.hardware.radio@1.4::types
+22091ad1f6cb6da1c7c1467e6412c9c1ae577b3ecc0c3e5047fc4b50cdd60c69 android.hardware.radio@1.4::types
 51e696c0ceff30f74da8ff8d02fe4522ffd2f4a04cdfdbca0c68bfa64fcd306b android.hardware.radio.config@1.1::IRadioConfig
 7fcf167f593b10c67b59ab70321781c26a5575eab60803e7cbb1c14c71085a3b android.hardware.radio.config@1.1::IRadioConfigIndication
 b42eb3bbd5e7b519e28362340c2205aa75356de6b30f4fd09ec2ea784f250ab0 android.hardware.radio.config@1.1::IRadioConfigResponse
diff --git a/drm/1.0/Android.bp b/drm/1.0/Android.bp
index aca5ae4..fea851f 100644
--- a/drm/1.0/Android.bp
+++ b/drm/1.0/Android.bp
@@ -17,22 +17,6 @@
     interfaces: [
         "android.hidl.base@1.0",
     ],
-    types: [
-        "BufferType",
-        "DestinationBuffer",
-        "EventType",
-        "KeyRequestType",
-        "KeyStatus",
-        "KeyStatusType",
-        "KeyType",
-        "KeyValue",
-        "Mode",
-        "Pattern",
-        "SecureStop",
-        "SharedBuffer",
-        "Status",
-        "SubSample",
-    ],
     gen_java: false,
 }
 
diff --git a/drm/1.1/Android.bp b/drm/1.1/Android.bp
index dba3e42..739b470 100644
--- a/drm/1.1/Android.bp
+++ b/drm/1.1/Android.bp
@@ -16,13 +16,6 @@
         "android.hardware.drm@1.0",
         "android.hidl.base@1.0",
     ],
-    types: [
-        "DrmMetricGroup",
-        "HdcpLevel",
-        "KeyRequestType",
-        "SecureStopRelease",
-        "SecurityLevel",
-    ],
     gen_java: false,
 }
 
diff --git a/fastboot/1.0/Android.bp b/fastboot/1.0/Android.bp
index 467fc6d..ea3566f 100644
--- a/fastboot/1.0/Android.bp
+++ b/fastboot/1.0/Android.bp
@@ -13,11 +13,6 @@
     interfaces: [
         "android.hidl.base@1.0",
     ],
-    types: [
-        "FileSystemType",
-        "Result",
-        "Status",
-    ],
     gen_java: true,
 }
 
diff --git a/gatekeeper/1.0/Android.bp b/gatekeeper/1.0/Android.bp
index 7dc2133..7eff2e8 100644
--- a/gatekeeper/1.0/Android.bp
+++ b/gatekeeper/1.0/Android.bp
@@ -13,10 +13,6 @@
     interfaces: [
         "android.hidl.base@1.0",
     ],
-    types: [
-        "GatekeeperResponse",
-        "GatekeeperStatusCode",
-    ],
     gen_java: true,
 }
 
diff --git a/gnss/1.0/Android.bp b/gnss/1.0/Android.bp
index dc659a3..2e3e6fd 100644
--- a/gnss/1.0/Android.bp
+++ b/gnss/1.0/Android.bp
@@ -32,12 +32,6 @@
     interfaces: [
         "android.hidl.base@1.0",
     ],
-    types: [
-        "GnssConstellationType",
-        "GnssLocation",
-        "GnssLocationFlags",
-        "GnssMax",
-    ],
     gen_java: true,
     gen_java_constants: true,
 }
diff --git a/graphics/common/1.0/Android.bp b/graphics/common/1.0/Android.bp
index f88cbdf..175166d 100644
--- a/graphics/common/1.0/Android.bp
+++ b/graphics/common/1.0/Android.bp
@@ -10,15 +10,6 @@
     srcs: [
         "types.hal",
     ],
-    types: [
-        "BufferUsage",
-        "ColorMode",
-        "ColorTransform",
-        "Dataspace",
-        "Hdr",
-        "PixelFormat",
-        "Transform",
-    ],
     gen_java: true,
     gen_java_constants: true,
 }
diff --git a/graphics/common/1.1/Android.bp b/graphics/common/1.1/Android.bp
index 8bc68f5..0647d12d 100644
--- a/graphics/common/1.1/Android.bp
+++ b/graphics/common/1.1/Android.bp
@@ -13,13 +13,6 @@
     interfaces: [
         "android.hardware.graphics.common@1.0",
     ],
-    types: [
-        "BufferUsage",
-        "ColorMode",
-        "Dataspace",
-        "PixelFormat",
-        "RenderIntent",
-    ],
     gen_java: true,
     gen_java_constants: true,
 }
diff --git a/graphics/composer/2.1/Android.bp b/graphics/composer/2.1/Android.bp
index 8fbc8c2..38786fd 100644
--- a/graphics/composer/2.1/Android.bp
+++ b/graphics/composer/2.1/Android.bp
@@ -16,9 +16,6 @@
         "android.hardware.graphics.common@1.0",
         "android.hidl.base@1.0",
     ],
-    types: [
-        "Error",
-    ],
     gen_java: false,
 }
 
diff --git a/graphics/mapper/2.0/Android.bp b/graphics/mapper/2.0/Android.bp
index 2f9a344..96e812b 100644
--- a/graphics/mapper/2.0/Android.bp
+++ b/graphics/mapper/2.0/Android.bp
@@ -15,10 +15,6 @@
         "android.hardware.graphics.common@1.0",
         "android.hidl.base@1.0",
     ],
-    types: [
-        "Error",
-        "YCbCrLayout",
-    ],
     gen_java: false,
 }
 
diff --git a/health/1.0/Android.bp b/health/1.0/Android.bp
index dcbaf58..e03b142 100644
--- a/health/1.0/Android.bp
+++ b/health/1.0/Android.bp
@@ -13,13 +13,6 @@
     interfaces: [
         "android.hidl.base@1.0",
     ],
-    types: [
-        "BatteryHealth",
-        "BatteryStatus",
-        "HealthConfig",
-        "HealthInfo",
-        "Result",
-    ],
     gen_java: true,
     gen_java_constants: true,
 }
diff --git a/health/2.0/Android.bp b/health/2.0/Android.bp
index 0325467..f472b27 100644
--- a/health/2.0/Android.bp
+++ b/health/2.0/Android.bp
@@ -15,13 +15,6 @@
         "android.hardware.health@1.0",
         "android.hidl.base@1.0",
     ],
-    types: [
-        "DiskStats",
-        "HealthInfo",
-        "Result",
-        "StorageAttribute",
-        "StorageInfo",
-    ],
     gen_java: true,
 }
 
diff --git a/health/storage/1.0/Android.bp b/health/storage/1.0/Android.bp
index 35ee34f..45fa01f 100644
--- a/health/storage/1.0/Android.bp
+++ b/health/storage/1.0/Android.bp
@@ -14,9 +14,6 @@
     interfaces: [
         "android.hidl.base@1.0",
     ],
-    types: [
-        "Result",
-    ],
     gen_java: true,
 }
 
diff --git a/ir/1.0/Android.bp b/ir/1.0/Android.bp
index 272acb3..5f25172 100644
--- a/ir/1.0/Android.bp
+++ b/ir/1.0/Android.bp
@@ -13,9 +13,6 @@
     interfaces: [
         "android.hidl.base@1.0",
     ],
-    types: [
-        "ConsumerIrFreqRange",
-    ],
     gen_java: true,
 }
 
diff --git a/keymaster/3.0/Android.bp b/keymaster/3.0/Android.bp
index e0f1b94..ca17a9b 100644
--- a/keymaster/3.0/Android.bp
+++ b/keymaster/3.0/Android.bp
@@ -13,26 +13,6 @@
     interfaces: [
         "android.hidl.base@1.0",
     ],
-    types: [
-        "Algorithm",
-        "BlockMode",
-        "Digest",
-        "EcCurve",
-        "ErrorCode",
-        "HardwareAuthToken",
-        "HardwareAuthenticatorType",
-        "KeyBlobUsageRequirements",
-        "KeyCharacteristics",
-        "KeyDerivationFunction",
-        "KeyFormat",
-        "KeyOrigin",
-        "KeyParameter",
-        "KeyPurpose",
-        "PaddingMode",
-        "SecurityLevel",
-        "Tag",
-        "TagType",
-    ],
     gen_java: false,
 }
 
diff --git a/keymaster/4.0/Android.bp b/keymaster/4.0/Android.bp
index 2daad41..cd46fd9 100644
--- a/keymaster/4.0/Android.bp
+++ b/keymaster/4.0/Android.bp
@@ -14,29 +14,6 @@
         "android.hardware.keymaster@3.0",
         "android.hidl.base@1.0",
     ],
-    types: [
-        "Algorithm",
-        "BlockMode",
-        "Constants",
-        "Digest",
-        "EcCurve",
-        "ErrorCode",
-        "HardwareAuthToken",
-        "HardwareAuthenticatorType",
-        "HmacSharingParameters",
-        "KeyBlobUsageRequirements",
-        "KeyCharacteristics",
-        "KeyDerivationFunction",
-        "KeyFormat",
-        "KeyOrigin",
-        "KeyParameter",
-        "KeyPurpose",
-        "PaddingMode",
-        "SecurityLevel",
-        "Tag",
-        "TagType",
-        "VerificationToken",
-    ],
     gen_java: false,
 }
 
diff --git a/light/2.0/Android.bp b/light/2.0/Android.bp
index ee58f93..6068752 100644
--- a/light/2.0/Android.bp
+++ b/light/2.0/Android.bp
@@ -13,13 +13,6 @@
     interfaces: [
         "android.hidl.base@1.0",
     ],
-    types: [
-        "Brightness",
-        "Flash",
-        "LightState",
-        "Status",
-        "Type",
-    ],
     gen_java: true,
 }
 
diff --git a/media/1.0/Android.bp b/media/1.0/Android.bp
index 45fedb9..844cfa2 100644
--- a/media/1.0/Android.bp
+++ b/media/1.0/Android.bp
@@ -12,11 +12,6 @@
     interfaces: [
         "android.hardware.graphics.common@1.0",
     ],
-    types: [
-        "AnwBuffer",
-        "AnwBufferAttributes",
-        "Rect",
-    ],
     gen_java: true,
 }
 
diff --git a/media/bufferpool/1.0/Android.bp b/media/bufferpool/1.0/Android.bp
index 986da8a..86297d3 100644
--- a/media/bufferpool/1.0/Android.bp
+++ b/media/bufferpool/1.0/Android.bp
@@ -15,12 +15,6 @@
     interfaces: [
         "android.hidl.base@1.0",
     ],
-    types: [
-        "Buffer",
-        "BufferStatus",
-        "BufferStatusMessage",
-        "ResultStatus",
-    ],
     gen_java: false,
 }
 
diff --git a/media/c2/1.0/IComponent.hal b/media/c2/1.0/IComponent.hal
index 7fd551f..abd1448 100644
--- a/media/c2/1.0/IComponent.hal
+++ b/media/c2/1.0/IComponent.hal
@@ -22,6 +22,7 @@
 import IConfigurable;
 import IComponentInterface;
 import IComponentListener;
+import IInputSink;
 import IInputSurface;
 import IInputSurfaceConnection;
 
@@ -355,11 +356,19 @@
      * Returns the @ref IComponentInterface instance associated to this
      * component.
      *
-     * An @p IConfigurable instance for the component can be obtained by calling
+     * An @ref IConfigurable instance for the component can be obtained by calling
      * IComponentInterface::getConfigurable() on the returned @p intf.
      *
      * @return intf `IComponentInterface` instance. This must not be null.
      */
     getInterface() generates (IComponentInterface intf);
+
+    /**
+     * Returns an @ref IInputSink instance that has the component as the
+     * underlying implementation.
+     *
+     * @return sink `IInputSink` instance.
+     */
+    asInputSink() generates (IInputSink sink);
 };
 
diff --git a/media/omx/1.0/Android.bp b/media/omx/1.0/Android.bp
index 89709bd..ee51d5d 100644
--- a/media/omx/1.0/Android.bp
+++ b/media/omx/1.0/Android.bp
@@ -21,13 +21,6 @@
         "android.hardware.media@1.0",
         "android.hidl.base@1.0",
     ],
-    types: [
-        "CodecBuffer",
-        "ColorAspects",
-        "Message",
-        "PortMode",
-        "Status",
-    ],
     gen_java: false,
 }
 
diff --git a/memtrack/1.0/Android.bp b/memtrack/1.0/Android.bp
index d56aa64..0f24977 100644
--- a/memtrack/1.0/Android.bp
+++ b/memtrack/1.0/Android.bp
@@ -13,12 +13,6 @@
     interfaces: [
         "android.hidl.base@1.0",
     ],
-    types: [
-        "MemtrackFlag",
-        "MemtrackRecord",
-        "MemtrackStatus",
-        "MemtrackType",
-    ],
     gen_java: true,
 }
 
diff --git a/neuralnetworks/1.0/Android.bp b/neuralnetworks/1.0/Android.bp
index e8600d3..63b5b98 100644
--- a/neuralnetworks/1.0/Android.bp
+++ b/neuralnetworks/1.0/Android.bp
@@ -16,22 +16,6 @@
     interfaces: [
         "android.hidl.base@1.0",
     ],
-    types: [
-        "Capabilities",
-        "DataLocation",
-        "DeviceStatus",
-        "ErrorStatus",
-        "FusedActivationFunc",
-        "Model",
-        "Operand",
-        "OperandLifeTime",
-        "OperandType",
-        "Operation",
-        "OperationType",
-        "PerformanceInfo",
-        "Request",
-        "RequestArgument",
-    ],
     gen_java: false,
 }
 
diff --git a/neuralnetworks/1.1/Android.bp b/neuralnetworks/1.1/Android.bp
index 24d8396..1158a90 100644
--- a/neuralnetworks/1.1/Android.bp
+++ b/neuralnetworks/1.1/Android.bp
@@ -14,13 +14,6 @@
         "android.hardware.neuralnetworks@1.0",
         "android.hidl.base@1.0",
     ],
-    types: [
-        "Capabilities",
-        "ExecutionPreference",
-        "Model",
-        "Operation",
-        "OperationType",
-    ],
     gen_java: false,
 }
 
diff --git a/neuralnetworks/1.2/Android.bp b/neuralnetworks/1.2/Android.bp
index daf0c18..085bda1 100644
--- a/neuralnetworks/1.2/Android.bp
+++ b/neuralnetworks/1.2/Android.bp
@@ -21,24 +21,6 @@
         "android.hidl.base@1.0",
         "android.hidl.safe_union@1.0",
     ],
-    types: [
-        "Constant",
-        "DeviceType",
-        "Extension",
-        "FmqRequestDatum",
-        "FmqResultDatum",
-        "MeasureTiming",
-        "Model",
-        "Operand",
-        "OperandType",
-        "OperandTypeRange",
-        "Operation",
-        "OperationType",
-        "OperationTypeRange",
-        "OutputShape",
-        "SymmPerChannelQuantParams",
-        "Timing",
-    ],
     gen_java: false,
 }
 
diff --git a/nfc/1.0/Android.bp b/nfc/1.0/Android.bp
index f821355..e0625d0 100644
--- a/nfc/1.0/Android.bp
+++ b/nfc/1.0/Android.bp
@@ -14,10 +14,6 @@
     interfaces: [
         "android.hidl.base@1.0",
     ],
-    types: [
-        "NfcEvent",
-        "NfcStatus",
-    ],
     gen_java: true,
     gen_java_constants: true,
 }
diff --git a/nfc/1.1/Android.bp b/nfc/1.1/Android.bp
index 9a1392e..bbf49b2 100644
--- a/nfc/1.1/Android.bp
+++ b/nfc/1.1/Android.bp
@@ -15,13 +15,6 @@
         "android.hardware.nfc@1.0",
         "android.hidl.base@1.0",
     ],
-    types: [
-        "Constant",
-        "NfcConfig",
-        "NfcEvent",
-        "PresenceCheckAlgorithm",
-        "ProtocolDiscoveryConfig",
-    ],
     gen_java: true,
 }
 
diff --git a/nfc/1.2/Android.bp b/nfc/1.2/Android.bp
index c338e02..cfb8b85 100644
--- a/nfc/1.2/Android.bp
+++ b/nfc/1.2/Android.bp
@@ -15,9 +15,6 @@
         "android.hardware.nfc@1.1",
         "android.hidl.base@1.0",
     ],
-    types: [
-        "NfcConfig",
-    ],
     gen_java: true,
 }
 
diff --git a/oemlock/1.0/Android.bp b/oemlock/1.0/Android.bp
index c4ad989..894188b 100644
--- a/oemlock/1.0/Android.bp
+++ b/oemlock/1.0/Android.bp
@@ -13,10 +13,6 @@
     interfaces: [
         "android.hidl.base@1.0",
     ],
-    types: [
-        "OemLockSecureStatus",
-        "OemLockStatus",
-    ],
     gen_java: true,
 }
 
diff --git a/power/1.0/Android.bp b/power/1.0/Android.bp
index 92c9483..dbc0a36 100644
--- a/power/1.0/Android.bp
+++ b/power/1.0/Android.bp
@@ -13,13 +13,6 @@
     interfaces: [
         "android.hidl.base@1.0",
     ],
-    types: [
-        "Feature",
-        "PowerHint",
-        "PowerStatePlatformSleepState",
-        "PowerStateVoter",
-        "Status",
-    ],
     gen_java: true,
 }
 
diff --git a/power/1.1/Android.bp b/power/1.1/Android.bp
index d1d8021..de55396 100644
--- a/power/1.1/Android.bp
+++ b/power/1.1/Android.bp
@@ -14,10 +14,6 @@
         "android.hardware.power@1.0",
         "android.hidl.base@1.0",
     ],
-    types: [
-        "PowerStateSubsystem",
-        "PowerStateSubsystemSleepState",
-    ],
     gen_java: true,
 }
 
diff --git a/power/1.2/Android.bp b/power/1.2/Android.bp
index 0eb73e7..284e736 100644
--- a/power/1.2/Android.bp
+++ b/power/1.2/Android.bp
@@ -15,9 +15,6 @@
         "android.hardware.power@1.1",
         "android.hidl.base@1.0",
     ],
-    types: [
-        "PowerHint",
-    ],
     gen_java: true,
 }
 
diff --git a/power/1.3/Android.bp b/power/1.3/Android.bp
index 1869b56..320f1e6 100644
--- a/power/1.3/Android.bp
+++ b/power/1.3/Android.bp
@@ -16,9 +16,6 @@
         "android.hardware.power@1.2",
         "android.hidl.base@1.0",
     ],
-    types: [
-        "PowerHint",
-    ],
     gen_java: true,
 }
 
diff --git a/power/stats/1.0/Android.bp b/power/stats/1.0/Android.bp
index 9a956e4..9cf24cf 100644
--- a/power/stats/1.0/Android.bp
+++ b/power/stats/1.0/Android.bp
@@ -13,17 +13,6 @@
     interfaces: [
         "android.hidl.base@1.0",
     ],
-    types: [
-        "EnergyData",
-        "PowerEntityInfo",
-        "PowerEntityStateInfo",
-        "PowerEntityStateResidencyData",
-        "PowerEntityStateResidencyResult",
-        "PowerEntityStateSpace",
-        "PowerEntityType",
-        "RailInfo",
-        "Status",
-    ],
     gen_java: false,
 }
 
diff --git a/radio/1.0/Android.bp b/radio/1.0/Android.bp
index 72a3ca6..f023471 100644
--- a/radio/1.0/Android.bp
+++ b/radio/1.0/Android.bp
@@ -17,162 +17,6 @@
     interfaces: [
         "android.hidl.base@1.0",
     ],
-    types: [
-        "ActivityStatsInfo",
-        "ApnAuthType",
-        "ApnTypes",
-        "AppState",
-        "AppStatus",
-        "AppType",
-        "Call",
-        "CallForwardInfo",
-        "CallForwardInfoStatus",
-        "CallPresentation",
-        "CallState",
-        "CardState",
-        "CardStatus",
-        "Carrier",
-        "CarrierMatchType",
-        "CarrierRestrictions",
-        "CdmaBroadcastSmsConfigInfo",
-        "CdmaCallWaiting",
-        "CdmaCallWaitingNumberPlan",
-        "CdmaCallWaitingNumberPresentation",
-        "CdmaCallWaitingNumberType",
-        "CdmaDisplayInfoRecord",
-        "CdmaInfoRecName",
-        "CdmaInformationRecord",
-        "CdmaInformationRecords",
-        "CdmaLineControlInfoRecord",
-        "CdmaNumberInfoRecord",
-        "CdmaOtaProvisionStatus",
-        "CdmaRedirectingNumberInfoRecord",
-        "CdmaRedirectingReason",
-        "CdmaRoamingType",
-        "CdmaSignalInfoRecord",
-        "CdmaSignalStrength",
-        "CdmaSmsAck",
-        "CdmaSmsAddress",
-        "CdmaSmsDigitMode",
-        "CdmaSmsErrorClass",
-        "CdmaSmsMessage",
-        "CdmaSmsNumberMode",
-        "CdmaSmsNumberPlan",
-        "CdmaSmsNumberType",
-        "CdmaSmsSubaddress",
-        "CdmaSmsSubaddressType",
-        "CdmaSmsWriteArgs",
-        "CdmaSmsWriteArgsStatus",
-        "CdmaSubscriptionSource",
-        "CdmaT53AudioControlInfoRecord",
-        "CdmaT53ClirInfoRecord",
-        "CellIdentity",
-        "CellIdentityCdma",
-        "CellIdentityGsm",
-        "CellIdentityLte",
-        "CellIdentityTdscdma",
-        "CellIdentityWcdma",
-        "CellInfo",
-        "CellInfoCdma",
-        "CellInfoGsm",
-        "CellInfoLte",
-        "CellInfoTdscdma",
-        "CellInfoType",
-        "CellInfoWcdma",
-        "CfData",
-        "ClipStatus",
-        "Clir",
-        "DataCallFailCause",
-        "DataProfileId",
-        "DataProfileInfo",
-        "DataProfileInfoType",
-        "DataRegStateResult",
-        "DeviceStateType",
-        "Dial",
-        "EvdoSignalStrength",
-        "GsmBroadcastSmsConfigInfo",
-        "GsmSignalStrength",
-        "GsmSmsMessage",
-        "HardwareConfig",
-        "HardwareConfigModem",
-        "HardwareConfigSim",
-        "HardwareConfigState",
-        "HardwareConfigType",
-        "IccIo",
-        "IccIoResult",
-        "ImsSmsMessage",
-        "IndicationFilter",
-        "LastCallFailCause",
-        "LastCallFailCauseInfo",
-        "LceDataInfo",
-        "LceStatus",
-        "LceStatusInfo",
-        "LteSignalStrength",
-        "MvnoType",
-        "NeighboringCell",
-        "NvItem",
-        "NvWriteItem",
-        "OperatorInfo",
-        "OperatorStatus",
-        "P2Constant",
-        "PcoDataInfo",
-        "PersoSubstate",
-        "PhoneRestrictedState",
-        "PinState",
-        "PreferredNetworkType",
-        "RadioAccessFamily",
-        "RadioBandMode",
-        "RadioCapability",
-        "RadioCapabilityPhase",
-        "RadioCapabilityStatus",
-        "RadioCdmaSmsConst",
-        "RadioConst",
-        "RadioError",
-        "RadioIndicationType",
-        "RadioResponseInfo",
-        "RadioResponseType",
-        "RadioState",
-        "RadioTechnology",
-        "RadioTechnologyFamily",
-        "RegState",
-        "ResetNvType",
-        "RestrictedState",
-        "SapApduType",
-        "SapConnectRsp",
-        "SapDisconnectType",
-        "SapResultCode",
-        "SapStatus",
-        "SapTransferProtocol",
-        "SelectUiccSub",
-        "SendSmsResult",
-        "SetupDataCallResult",
-        "SignalStrength",
-        "SimApdu",
-        "SimRefreshResult",
-        "SimRefreshType",
-        "SmsAcknowledgeFailCause",
-        "SmsWriteArgs",
-        "SmsWriteArgsStatus",
-        "SrvccState",
-        "SsInfoData",
-        "SsRequestType",
-        "SsServiceType",
-        "SsTeleserviceType",
-        "StkCcUnsolSsResult",
-        "SubscriptionType",
-        "SuppServiceClass",
-        "SuppSvcNotification",
-        "TdScdmaSignalStrength",
-        "TimeStampType",
-        "TtyMode",
-        "UiccSubActStatus",
-        "UssdModeType",
-        "UusDcs",
-        "UusInfo",
-        "UusType",
-        "VoiceRegStateResult",
-        "WcdmaSignalStrength",
-    ],
     gen_java: true,
 }
 
diff --git a/radio/1.1/Android.bp b/radio/1.1/Android.bp
index 5eecb31..4375d8c 100644
--- a/radio/1.1/Android.bp
+++ b/radio/1.1/Android.bp
@@ -17,23 +17,6 @@
         "android.hardware.radio@1.0",
         "android.hidl.base@1.0",
     ],
-    types: [
-        "CardPowerState",
-        "EutranBands",
-        "GeranBands",
-        "ImsiEncryptionInfo",
-        "KeepaliveRequest",
-        "KeepaliveStatus",
-        "KeepaliveStatusCode",
-        "KeepaliveType",
-        "NetworkScanRequest",
-        "NetworkScanResult",
-        "RadioAccessNetworks",
-        "RadioAccessSpecifier",
-        "ScanStatus",
-        "ScanType",
-        "UtranBands",
-    ],
     gen_java: true,
 }
 
diff --git a/radio/1.2/Android.bp b/radio/1.2/Android.bp
index c90a03c..b7364a8 100644
--- a/radio/1.2/Android.bp
+++ b/radio/1.2/Android.bp
@@ -18,41 +18,6 @@
         "android.hardware.radio@1.1",
         "android.hidl.base@1.0",
     ],
-    types: [
-        "AccessNetwork",
-        "AudioQuality",
-        "Call",
-        "CardStatus",
-        "CellConnectionStatus",
-        "CellIdentity",
-        "CellIdentityCdma",
-        "CellIdentityGsm",
-        "CellIdentityLte",
-        "CellIdentityOperatorNames",
-        "CellIdentityTdscdma",
-        "CellIdentityWcdma",
-        "CellInfo",
-        "CellInfoCdma",
-        "CellInfoGsm",
-        "CellInfoLte",
-        "CellInfoTdscdma",
-        "CellInfoWcdma",
-        "DataRegStateResult",
-        "DataRequestReason",
-        "IncrementalResultsPeriodicityRange",
-        "IndicationFilter",
-        "LinkCapacityEstimate",
-        "MaxSearchTimeRange",
-        "NetworkScanRequest",
-        "NetworkScanResult",
-        "PhysicalChannelConfig",
-        "RadioConst",
-        "ScanIntervalRange",
-        "SignalStrength",
-        "TdscdmaSignalStrength",
-        "VoiceRegStateResult",
-        "WcdmaSignalStrength",
-    ],
     gen_java: true,
 }
 
diff --git a/radio/1.3/Android.bp b/radio/1.3/Android.bp
index 63056cc..de2a3e5 100644
--- a/radio/1.3/Android.bp
+++ b/radio/1.3/Android.bp
@@ -18,9 +18,6 @@
         "android.hardware.radio@1.2",
         "android.hidl.base@1.0",
     ],
-    types: [
-        "RadioResponseInfoModem",
-    ],
     gen_java: true,
 }
 
diff --git a/radio/1.3/IRadio.hal b/radio/1.3/IRadio.hal
index 95cf615..922b35d 100644
--- a/radio/1.3/IRadio.hal
+++ b/radio/1.3/IRadio.hal
@@ -49,8 +49,13 @@
             vec<RadioAccessSpecifier> specifiers);
 
    /**
-    * Toggle logical modem on and off. The difference with setRadioPower is,
-    * setRadioPower affects all logical modems while this controls just one.
+    * Toggle logical modem on/off. This is similar to @1.0::IRadio.setRadioPower(), however that
+    * does not enforce that radio power is toggled only for the corresponding radio and certain
+    * vendor implementations do it for all radios. This new API should affect only the modem for
+    * which it is called. A modem stack must be on/active only when both setRadioPower() and
+    * enableModem() are set to on for it.
+    *
+    * SIM must be read if available even if modem is off/inactive.
     *
     * @param serial Serial number of request.
     * @param on True to turn on the logical modem, otherwise turn it off.
diff --git a/radio/1.4/Android.bp b/radio/1.4/Android.bp
index e8b8777..9f5f2f9 100644
--- a/radio/1.4/Android.bp
+++ b/radio/1.4/Android.bp
@@ -20,38 +20,6 @@
         "android.hidl.base@1.0",
         "android.hidl.safe_union@1.0",
     ],
-    types: [
-        "AccessNetwork",
-        "CardStatus",
-        "CarrierRestrictionsWithPriority",
-        "CellConfigLte",
-        "CellIdentityNr",
-        "CellInfo",
-        "CellInfoLte",
-        "CellInfoNr",
-        "DataCallFailCause",
-        "DataConnActiveStatus",
-        "DataProfileInfo",
-        "DataRegStateResult",
-        "EmergencyCallRouting",
-        "EmergencyNumber",
-        "EmergencyNumberSource",
-        "EmergencyServiceCategory",
-        "FrequencyRange",
-        "LteVopsInfo",
-        "NetworkScanResult",
-        "NrIndicators",
-        "NrSignalStrength",
-        "PdpProtocolType",
-        "PhysicalChannelConfig",
-        "RadioAccessFamily",
-        "RadioCapability",
-        "RadioFrequencyInfo",
-        "RadioTechnology",
-        "SetupDataCallResult",
-        "SignalStrength",
-        "SimLockMultiSimPolicy",
-    ],
     gen_java: true,
 }
 
diff --git a/radio/1.4/types.hal b/radio/1.4/types.hal
index dc3bba0..393716b 100644
--- a/radio/1.4/types.hal
+++ b/radio/1.4/types.hal
@@ -64,6 +64,15 @@
     UNKNOWN = 0,
 };
 
+enum ApnTypes : @1.0::ApnTypes {
+    /**
+     * Due to the addition of this new value, the value ALL defined in 1.0::ApnTypes is now
+     * deprecated and should not be used.
+     */
+    MCX = 1 << 10,            // APN type for Mission Critical Service
+                              // Reference: 3GPP TS 22.280 V15.3.0
+};
+
 /**
  * Emergency number contains information of number, one or more service category(s), zero or more
  * emergency uniform resource names, mobile country code (mcc), mobile network country (mnc) and
diff --git a/radio/1.4/vts/functional/radio_hidl_hal_api.cpp b/radio/1.4/vts/functional/radio_hidl_hal_api.cpp
index 15a8acc..4f347cd 100644
--- a/radio/1.4/vts/functional/radio_hidl_hal_api.cpp
+++ b/radio/1.4/vts/functional/radio_hidl_hal_api.cpp
@@ -563,3 +563,116 @@
                                       RadioError::OP_NOT_ALLOWED_BEFORE_REG_TO_NW}));
     }
 }
+
+/*
+ * Test IRadio.getAllowedCarriers_1_4() for the response returned.
+ */
+TEST_F(RadioHidlTest_v1_4, getAllowedCarriers_1_4) {
+    serial = GetRandomSerialNumber();
+
+    radio_v1_4->getAllowedCarriers_1_4(serial);
+    EXPECT_EQ(std::cv_status::no_timeout, wait());
+    EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_4->rspInfo.type);
+    EXPECT_EQ(serial, radioRsp_v1_4->rspInfo.serial);
+
+    ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_4->rspInfo.error,
+                                 {RadioError::NONE, RadioError::REQUEST_NOT_SUPPORTED}));
+}
+
+/**
+ * Test IRadio.setAllowedCarriers_1_4() for the response returned.
+ */
+TEST_F(RadioHidlTest_v1_4, setAllowedCarriers_1_4) {
+    serial = GetRandomSerialNumber();
+    CarrierRestrictionsWithPriority carrierRestrictions;
+    memset(&carrierRestrictions, 0, sizeof(carrierRestrictions));
+    carrierRestrictions.allowedCarriers.resize(1);
+    carrierRestrictions.excludedCarriers.resize(0);
+    carrierRestrictions.allowedCarriers[0].mcc = hidl_string("123");
+    carrierRestrictions.allowedCarriers[0].mnc = hidl_string("456");
+    carrierRestrictions.allowedCarriers[0].matchType = CarrierMatchType::ALL;
+    carrierRestrictions.allowedCarriers[0].matchData = hidl_string();
+    carrierRestrictions.allowedCarriersPrioritized = true;
+    SimLockMultiSimPolicy multisimPolicy = SimLockMultiSimPolicy::NO_MULTISIM_POLICY;
+
+    radio_v1_4->setAllowedCarriers_1_4(serial, carrierRestrictions, multisimPolicy);
+    EXPECT_EQ(std::cv_status::no_timeout, wait());
+    EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_4->rspInfo.type);
+    EXPECT_EQ(serial, radioRsp_v1_4->rspInfo.serial);
+
+    ASSERT_TRUE(CheckAnyOfErrors(radioRsp_v1_4->rspInfo.error,
+                                 {RadioError::NONE, RadioError::REQUEST_NOT_SUPPORTED}));
+
+    if (radioRsp_v1_4->rspInfo.error == RadioError::NONE) {
+        /* Verify the update of the SIM status. This might need some time */
+        if (cardStatus.base.base.cardState != CardState::ABSENT) {
+            updateSimCardStatus();
+            auto startTime = std::chrono::system_clock::now();
+            while (cardStatus.base.base.cardState != CardState::RESTRICTED &&
+                   std::chrono::duration_cast<chrono::seconds>(std::chrono::system_clock::now() -
+                                                               startTime)
+                                   .count() < 10) {
+                /* Set 2 seconds as interval to check card status */
+                sleep(2);
+                updateSimCardStatus();
+            }
+            EXPECT_EQ(CardState::RESTRICTED, cardStatus.base.base.cardState);
+        }
+
+        /* Verify that configuration was set correctly, retrieving it from the modem */
+        serial = GetRandomSerialNumber();
+
+        radio_v1_4->getAllowedCarriers_1_4(serial);
+        EXPECT_EQ(std::cv_status::no_timeout, wait());
+        EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_4->rspInfo.type);
+        EXPECT_EQ(serial, radioRsp_v1_4->rspInfo.serial);
+        EXPECT_EQ(RadioError::NONE, radioRsp_v1_4->rspInfo.error);
+
+        EXPECT_EQ(1, radioRsp_v1_4->carrierRestrictionsResp.allowedCarriers.size());
+        EXPECT_EQ(0, radioRsp_v1_4->carrierRestrictionsResp.excludedCarriers.size());
+        ASSERT_TRUE(hidl_string("123") ==
+                    radioRsp_v1_4->carrierRestrictionsResp.allowedCarriers[0].mcc);
+        ASSERT_TRUE(hidl_string("456") ==
+                    radioRsp_v1_4->carrierRestrictionsResp.allowedCarriers[0].mnc);
+        EXPECT_EQ(CarrierMatchType::ALL,
+                  radioRsp_v1_4->carrierRestrictionsResp.allowedCarriers[0].matchType);
+        ASSERT_TRUE(radioRsp_v1_4->carrierRestrictionsResp.allowedCarriersPrioritized);
+        EXPECT_EQ(SimLockMultiSimPolicy::NO_MULTISIM_POLICY, radioRsp_v1_4->multiSimPolicyResp);
+
+        sleep(10);
+
+        /**
+         * Another test case of the API to cover to allow carrier.
+         * If the API is supported, this is also used to reset to no carrier restriction
+         * status for cardStatus.
+         */
+        memset(&carrierRestrictions, 0, sizeof(carrierRestrictions));
+        carrierRestrictions.allowedCarriers.resize(0);
+        carrierRestrictions.excludedCarriers.resize(0);
+        carrierRestrictions.allowedCarriersPrioritized = false;
+
+        serial = GetRandomSerialNumber();
+        radio_v1_4->setAllowedCarriers_1_4(serial, carrierRestrictions, multisimPolicy);
+        EXPECT_EQ(std::cv_status::no_timeout, wait());
+        EXPECT_EQ(RadioResponseType::SOLICITED, radioRsp_v1_4->rspInfo.type);
+        EXPECT_EQ(serial, radioRsp_v1_4->rspInfo.serial);
+
+        EXPECT_EQ(RadioError::NONE, radioRsp_v1_4->rspInfo.error);
+
+        if (cardStatus.base.base.cardState != CardState::ABSENT) {
+            /* Resetting back to no carrier restriction needs some time */
+            updateSimCardStatus();
+            auto startTime = std::chrono::system_clock::now();
+            while (cardStatus.base.base.cardState == CardState::RESTRICTED &&
+                   std::chrono::duration_cast<chrono::seconds>(std::chrono::system_clock::now() -
+                                                               startTime)
+                                   .count() < 10) {
+                /* Set 2 seconds as interval to check card status */
+                sleep(2);
+                updateSimCardStatus();
+            }
+            EXPECT_NE(CardState::RESTRICTED, cardStatus.base.base.cardState);
+            sleep(10);
+        }
+    }
+}
diff --git a/radio/1.4/vts/functional/radio_hidl_hal_utils_v1_4.h b/radio/1.4/vts/functional/radio_hidl_hal_utils_v1_4.h
index ed689c6..de7742c 100644
--- a/radio/1.4/vts/functional/radio_hidl_hal_utils_v1_4.h
+++ b/radio/1.4/vts/functional/radio_hidl_hal_utils_v1_4.h
@@ -67,6 +67,10 @@
     // Data
     ::android::hardware::radio::V1_4::DataRegStateResult dataRegResp;
 
+    // SimLock status
+    ::android::hardware::radio::V1_4::CarrierRestrictionsWithPriority carrierRestrictionsResp;
+    ::android::hardware::radio::V1_4::SimLockMultiSimPolicy multiSimPolicyResp;
+
     RadioResponse_v1_4(RadioHidlTest_v1_4& parent_v1_4);
     virtual ~RadioResponse_v1_4() = default;
 
diff --git a/radio/1.4/vts/functional/radio_response.cpp b/radio/1.4/vts/functional/radio_response.cpp
index 6e9cd43..e7842a9 100644
--- a/radio/1.4/vts/functional/radio_response.cpp
+++ b/radio/1.4/vts/functional/radio_response.cpp
@@ -862,12 +862,18 @@
     return Void();
 }
 
-Return<void> RadioResponse_v1_4::setAllowedCarriersResponse_1_4(const RadioResponseInfo& /*info*/) {
+Return<void> RadioResponse_v1_4::setAllowedCarriersResponse_1_4(const RadioResponseInfo& info) {
+    rspInfo = info;
+    parent_v1_4.notify(info.serial);
     return Void();
 }
 
 Return<void> RadioResponse_v1_4::getAllowedCarriersResponse_1_4(
-        const RadioResponseInfo& /*info*/, const CarrierRestrictionsWithPriority& /*carriers*/,
-        SimLockMultiSimPolicy /*multiSimPolicy*/) {
+        const RadioResponseInfo& info, const CarrierRestrictionsWithPriority& carriers,
+        SimLockMultiSimPolicy multiSimPolicy) {
+    rspInfo = info;
+    carrierRestrictionsResp = carriers;
+    multiSimPolicyResp = multiSimPolicy;
+    parent_v1_4.notify(info.serial);
     return Void();
 }
diff --git a/radio/config/1.0/Android.bp b/radio/config/1.0/Android.bp
index c50e71c..7fb0ea1 100644
--- a/radio/config/1.0/Android.bp
+++ b/radio/config/1.0/Android.bp
@@ -16,10 +16,6 @@
         "android.hardware.radio@1.0",
         "android.hidl.base@1.0",
     ],
-    types: [
-        "SimSlotStatus",
-        "SlotState",
-    ],
     gen_java: true,
 }
 
diff --git a/radio/config/1.1/Android.bp b/radio/config/1.1/Android.bp
index 151a0a3..5c9ad7c 100644
--- a/radio/config/1.1/Android.bp
+++ b/radio/config/1.1/Android.bp
@@ -17,11 +17,6 @@
         "android.hardware.radio@1.0",
         "android.hidl.base@1.0",
     ],
-    types: [
-        "ModemInfo",
-        "ModemsConfig",
-        "PhoneCapability",
-    ],
     gen_java: true,
 }
 
diff --git a/radio/config/1.2/Android.bp b/radio/config/1.2/Android.bp
index 3e6a425..e69be40 100644
--- a/radio/config/1.2/Android.bp
+++ b/radio/config/1.2/Android.bp
@@ -17,9 +17,6 @@
         "android.hardware.radio@1.0",
         "android.hidl.base@1.0",
     ],
-    types: [
-        "SimSlotStatus",
-    ],
     gen_java: true,
 }
 
diff --git a/renderscript/1.0/Android.bp b/renderscript/1.0/Android.bp
index 79b2ff7..1d7efad 100644
--- a/renderscript/1.0/Android.bp
+++ b/renderscript/1.0/Android.bp
@@ -15,23 +15,6 @@
     interfaces: [
         "android.hidl.base@1.0",
     ],
-    types: [
-        "AllocationCubemapFace",
-        "AllocationMipmapControl",
-        "AllocationUsageType",
-        "ContextFlags",
-        "ContextType",
-        "DataKind",
-        "DataType",
-        "ForEachStrategy",
-        "MessageToClientType",
-        "MetadataSignatureBitval",
-        "SamplerValue",
-        "ScriptCall",
-        "ScriptIntrinsicID",
-        "ThreadPriorities",
-        "YuvFormat",
-    ],
     gen_java: false,
     gen_java_constants: true,
 }
diff --git a/secure_element/1.0/Android.bp b/secure_element/1.0/Android.bp
index e8081df..c6fa6a9 100644
--- a/secure_element/1.0/Android.bp
+++ b/secure_element/1.0/Android.bp
@@ -14,10 +14,6 @@
     interfaces: [
         "android.hidl.base@1.0",
     ],
-    types: [
-        "LogicalChannelResponse",
-        "SecureElementStatus",
-    ],
     gen_java: true,
 }
 
diff --git a/sensors/1.0/Android.bp b/sensors/1.0/Android.bp
index 92c3c1b..3a41f9c 100644
--- a/sensors/1.0/Android.bp
+++ b/sensors/1.0/Android.bp
@@ -13,31 +13,6 @@
     interfaces: [
         "android.hidl.base@1.0",
     ],
-    types: [
-        "AdditionalInfo",
-        "AdditionalInfoType",
-        "DynamicSensorInfo",
-        "Event",
-        "EventPayload",
-        "HeartRate",
-        "MetaData",
-        "MetaDataEventType",
-        "OperationMode",
-        "RateLevel",
-        "Result",
-        "SensorFlagBits",
-        "SensorFlagShift",
-        "SensorInfo",
-        "SensorStatus",
-        "SensorType",
-        "SensorsEventFormatOffset",
-        "SharedMemFormat",
-        "SharedMemInfo",
-        "SharedMemType",
-        "Uncal",
-        "Vec3",
-        "Vec4",
-    ],
     gen_java: false,
     gen_java_constants: true,
 }
diff --git a/soundtrigger/2.0/Android.bp b/soundtrigger/2.0/Android.bp
index 92f031a..b805be8 100644
--- a/soundtrigger/2.0/Android.bp
+++ b/soundtrigger/2.0/Android.bp
@@ -15,12 +15,6 @@
         "android.hardware.audio.common@2.0",
         "android.hidl.base@1.0",
     ],
-    types: [
-        "ConfidenceLevel",
-        "PhraseRecognitionExtra",
-        "RecognitionMode",
-        "SoundModelType",
-    ],
     gen_java: false,
 }
 
diff --git a/tests/bar/1.0/Android.bp b/tests/bar/1.0/Android.bp
index 45c84bc..a1b6b88 100644
--- a/tests/bar/1.0/Android.bp
+++ b/tests/bar/1.0/Android.bp
@@ -15,9 +15,6 @@
         "android.hardware.tests.foo@1.0",
         "android.hidl.base@1.0",
     ],
-    types: [
-        "Def",
-    ],
     gen_java: false,
 }
 
diff --git a/tests/baz/1.0/Android.bp b/tests/baz/1.0/Android.bp
index edf8fe6..618f4f8 100644
--- a/tests/baz/1.0/Android.bp
+++ b/tests/baz/1.0/Android.bp
@@ -13,8 +13,6 @@
     interfaces: [
         "android.hidl.base@1.0",
     ],
-    types: [
-    ],
     gen_java: true,
 }
 
diff --git a/tests/extension/light/2.0/Android.bp b/tests/extension/light/2.0/Android.bp
index 58c8392..916af71 100644
--- a/tests/extension/light/2.0/Android.bp
+++ b/tests/extension/light/2.0/Android.bp
@@ -11,11 +11,6 @@
         "android.hardware.light@2.0",
         "android.hidl.base@1.0",
     ],
-    types: [
-        "Brightness",
-        "Default",
-        "LightState",
-    ],
     gen_java: true,
 }
 
diff --git a/tests/foo/1.0/Android.bp b/tests/foo/1.0/Android.bp
index 769de2d..1c3b3c5 100644
--- a/tests/foo/1.0/Android.bp
+++ b/tests/foo/1.0/Android.bp
@@ -14,13 +14,6 @@
     interfaces: [
         "android.hidl.base@1.0",
     ],
-    types: [
-        "Abc",
-        "Def",
-        "EnumIterators",
-        "Outer",
-        "Unrelated",
-    ],
     gen_java: false,
 }
 
diff --git a/tests/trie/1.0/Android.bp b/tests/trie/1.0/Android.bp
index 870a350..0795f66 100644
--- a/tests/trie/1.0/Android.bp
+++ b/tests/trie/1.0/Android.bp
@@ -10,15 +10,6 @@
     interfaces: [
         "android.hidl.base@1.0",
     ],
-    types: [
-        "A",
-        "B",
-        "E1",
-        "E2",
-        "S",
-        "TrieEdge",
-        "TrieNode",
-    ],
     gen_java: false,
 }
 
diff --git a/tetheroffload/control/1.0/Android.bp b/tetheroffload/control/1.0/Android.bp
index 8e3fd27..dc2487b 100644
--- a/tetheroffload/control/1.0/Android.bp
+++ b/tetheroffload/control/1.0/Android.bp
@@ -14,12 +14,6 @@
     interfaces: [
         "android.hidl.base@1.0",
     ],
-    types: [
-        "IPv4AddrPortPair",
-        "NatTimeoutUpdate",
-        "NetworkProtocol",
-        "OffloadCallbackEvent",
-    ],
     gen_java: true,
 }
 
diff --git a/thermal/1.0/Android.bp b/thermal/1.0/Android.bp
index e764e28..8428977 100644
--- a/thermal/1.0/Android.bp
+++ b/thermal/1.0/Android.bp
@@ -13,15 +13,6 @@
     interfaces: [
         "android.hidl.base@1.0",
     ],
-    types: [
-        "CoolingDevice",
-        "CoolingType",
-        "CpuUsage",
-        "Temperature",
-        "TemperatureType",
-        "ThermalStatus",
-        "ThermalStatusCode",
-    ],
     gen_java: true,
     gen_java_constants: true,
 }
diff --git a/tv/cec/1.0/Android.bp b/tv/cec/1.0/Android.bp
index 2aa155e..7626dc0 100644
--- a/tv/cec/1.0/Android.bp
+++ b/tv/cec/1.0/Android.bp
@@ -14,20 +14,6 @@
     interfaces: [
         "android.hidl.base@1.0",
     ],
-    types: [
-        "AbortReason",
-        "CecDeviceType",
-        "CecLogicalAddress",
-        "CecMessage",
-        "CecMessageType",
-        "HdmiPortInfo",
-        "HdmiPortType",
-        "HotplugEvent",
-        "MaxLength",
-        "OptionKey",
-        "Result",
-        "SendMessageResult",
-    ],
     gen_java: true,
 }
 
diff --git a/tv/input/1.0/Android.bp b/tv/input/1.0/Android.bp
index 1bf3930..a6c1959 100644
--- a/tv/input/1.0/Android.bp
+++ b/tv/input/1.0/Android.bp
@@ -15,15 +15,6 @@
         "android.hardware.audio.common@2.0",
         "android.hidl.base@1.0",
     ],
-    types: [
-        "CableConnectionStatus",
-        "Result",
-        "TvInputDeviceInfo",
-        "TvInputEvent",
-        "TvInputEventType",
-        "TvInputType",
-        "TvStreamConfig",
-    ],
     gen_java: false,
     gen_java_constants: true,
 }
diff --git a/update-makefiles.sh b/update-makefiles.sh
index 14c5b01..c58240f 100755
--- a/update-makefiles.sh
+++ b/update-makefiles.sh
@@ -13,9 +13,3 @@
 do_makefiles_update \
   "android.hardware:hardware/interfaces" \
   "android.hidl:system/libhidl/transport"
-
-echo "Updating files at $ANDROID_BUILD_TOP/test/vts-testcase/hal"
-pushd $ANDROID_BUILD_TOP/test/vts-testcase/hal
-./script/update_makefiles.py
-popd
-
diff --git a/usb/1.0/Android.bp b/usb/1.0/Android.bp
index 6676fa5..a00b671 100644
--- a/usb/1.0/Android.bp
+++ b/usb/1.0/Android.bp
@@ -14,15 +14,6 @@
     interfaces: [
         "android.hidl.base@1.0",
     ],
-    types: [
-        "PortDataRole",
-        "PortMode",
-        "PortPowerRole",
-        "PortRole",
-        "PortRoleType",
-        "PortStatus",
-        "Status",
-    ],
     gen_java: true,
     gen_java_constants: true,
 }
diff --git a/usb/1.1/Android.bp b/usb/1.1/Android.bp
index c398f94..fb2cc4e 100644
--- a/usb/1.1/Android.bp
+++ b/usb/1.1/Android.bp
@@ -15,10 +15,6 @@
         "android.hardware.usb@1.0",
         "android.hidl.base@1.0",
     ],
-    types: [
-        "PortMode_1_1",
-        "PortStatus_1_1",
-    ],
     gen_java: true,
     gen_java_constants: true,
 }
diff --git a/usb/gadget/1.0/Android.bp b/usb/gadget/1.0/Android.bp
index f38002f..7ee432b 100644
--- a/usb/gadget/1.0/Android.bp
+++ b/usb/gadget/1.0/Android.bp
@@ -14,10 +14,6 @@
     interfaces: [
         "android.hidl.base@1.0",
     ],
-    types: [
-        "GadgetFunction",
-        "Status",
-    ],
     gen_java: true,
 }
 
diff --git a/vibrator/1.0/Android.bp b/vibrator/1.0/Android.bp
index 6913c88..acc97d4 100644
--- a/vibrator/1.0/Android.bp
+++ b/vibrator/1.0/Android.bp
@@ -13,11 +13,6 @@
     interfaces: [
         "android.hidl.base@1.0",
     ],
-    types: [
-        "Effect",
-        "EffectStrength",
-        "Status",
-    ],
     gen_java: true,
     gen_java_constants: true,
 }
diff --git a/vibrator/1.1/Android.bp b/vibrator/1.1/Android.bp
index 810797b..2055e5a 100644
--- a/vibrator/1.1/Android.bp
+++ b/vibrator/1.1/Android.bp
@@ -14,9 +14,6 @@
         "android.hardware.vibrator@1.0",
         "android.hidl.base@1.0",
     ],
-    types: [
-        "Effect_1_1",
-    ],
     gen_java: true,
     gen_java_constants: true,
 }
diff --git a/vibrator/1.2/Android.bp b/vibrator/1.2/Android.bp
index 88192c1..481adee 100644
--- a/vibrator/1.2/Android.bp
+++ b/vibrator/1.2/Android.bp
@@ -15,9 +15,6 @@
         "android.hardware.vibrator@1.1",
         "android.hidl.base@1.0",
     ],
-    types: [
-        "Effect",
-    ],
     gen_java: true,
 }
 
diff --git a/weaver/1.0/Android.bp b/weaver/1.0/Android.bp
index e088a16..7f93b10 100644
--- a/weaver/1.0/Android.bp
+++ b/weaver/1.0/Android.bp
@@ -13,12 +13,6 @@
     interfaces: [
         "android.hidl.base@1.0",
     ],
-    types: [
-        "WeaverConfig",
-        "WeaverReadResponse",
-        "WeaverReadStatus",
-        "WeaverStatus",
-    ],
     gen_java: true,
 }
 
diff --git a/wifi/1.0/Android.bp b/wifi/1.0/Android.bp
index 096fb6c..c5ee1bb 100644
--- a/wifi/1.0/Android.bp
+++ b/wifi/1.0/Android.bp
@@ -25,90 +25,6 @@
     interfaces: [
         "android.hidl.base@1.0",
     ],
-    types: [
-        "IfaceType",
-        "NanBandIndex",
-        "NanBandSpecificConfig",
-        "NanCapabilities",
-        "NanCipherSuiteType",
-        "NanClusterEventInd",
-        "NanClusterEventType",
-        "NanConfigRequest",
-        "NanDataPathChannelCfg",
-        "NanDataPathConfirmInd",
-        "NanDataPathRequestInd",
-        "NanDataPathSecurityConfig",
-        "NanDataPathSecurityType",
-        "NanDebugConfig",
-        "NanDiscoveryCommonConfig",
-        "NanEnableRequest",
-        "NanFollowupReceivedInd",
-        "NanInitiateDataPathRequest",
-        "NanMatchAlg",
-        "NanMatchInd",
-        "NanParamSizeLimits",
-        "NanPublishRequest",
-        "NanPublishType",
-        "NanRangingIndication",
-        "NanRespondToDataPathIndicationRequest",
-        "NanSrfType",
-        "NanStatusType",
-        "NanSubscribeRequest",
-        "NanSubscribeType",
-        "NanTransmitFollowupRequest",
-        "NanTxType",
-        "RttBw",
-        "RttCapabilities",
-        "RttConfig",
-        "RttLciInformation",
-        "RttLcrInformation",
-        "RttMotionPattern",
-        "RttPeerType",
-        "RttPreamble",
-        "RttResponder",
-        "RttResult",
-        "RttStatus",
-        "RttType",
-        "StaApfPacketFilterCapabilities",
-        "StaBackgroundScanBucketEventReportSchemeMask",
-        "StaBackgroundScanBucketParameters",
-        "StaBackgroundScanCapabilities",
-        "StaBackgroundScanParameters",
-        "StaLinkLayerIfacePacketStats",
-        "StaLinkLayerIfaceStats",
-        "StaLinkLayerRadioStats",
-        "StaLinkLayerStats",
-        "StaRoamingCapabilities",
-        "StaRoamingConfig",
-        "StaRoamingState",
-        "StaScanData",
-        "StaScanDataFlagMask",
-        "StaScanLimits",
-        "StaScanResult",
-        "WifiBand",
-        "WifiChannelInfo",
-        "WifiChannelWidthInMhz",
-        "WifiDebugHostWakeReasonRxIcmpPacketDetails",
-        "WifiDebugHostWakeReasonRxMulticastPacketDetails",
-        "WifiDebugHostWakeReasonRxPacketDetails",
-        "WifiDebugHostWakeReasonStats",
-        "WifiDebugPacketFateFrameInfo",
-        "WifiDebugPacketFateFrameType",
-        "WifiDebugRingBufferFlags",
-        "WifiDebugRingBufferStatus",
-        "WifiDebugRingBufferVerboseLevel",
-        "WifiDebugRxPacketFate",
-        "WifiDebugRxPacketFateReport",
-        "WifiDebugTxPacketFate",
-        "WifiDebugTxPacketFateReport",
-        "WifiInformationElement",
-        "WifiNanStatus",
-        "WifiRateInfo",
-        "WifiRateNss",
-        "WifiRatePreamble",
-        "WifiStatus",
-        "WifiStatusCode",
-    ],
     gen_java: true,
     gen_java_constants: true,
 }
diff --git a/wifi/1.2/Android.bp b/wifi/1.2/Android.bp
index c144f22..1863eaf 100644
--- a/wifi/1.2/Android.bp
+++ b/wifi/1.2/Android.bp
@@ -20,12 +20,6 @@
         "android.hardware.wifi@1.1",
         "android.hidl.base@1.0",
     ],
-    types: [
-        "NanConfigRequestSupplemental",
-        "NanDataPathChannelInfo",
-        "NanDataPathConfirmInd",
-        "NanDataPathScheduleUpdateInd",
-    ],
     gen_java: true,
 }
 
diff --git a/wifi/1.3/default/wifi_legacy_hal.cpp b/wifi/1.3/default/wifi_legacy_hal.cpp
index 2b90f92..5aa98c4 100644
--- a/wifi/1.3/default/wifi_legacy_hal.cpp
+++ b/wifi/1.3/default/wifi_legacy_hal.cpp
@@ -424,6 +424,8 @@
     return WIFI_SUCCESS;
 }
 
+bool WifiLegacyHal::isStarted() { return is_started_; }
+
 std::pair<wifi_error, std::string> WifiLegacyHal::getDriverVersion(
     const std::string& iface_name) {
     std::array<char, kMaxVersionStringLength> buffer;
diff --git a/wifi/1.3/default/wifi_legacy_hal.h b/wifi/1.3/default/wifi_legacy_hal.h
index d6f05ae..70a919f 100644
--- a/wifi/1.3/default/wifi_legacy_hal.h
+++ b/wifi/1.3/default/wifi_legacy_hal.h
@@ -181,6 +181,8 @@
     // using a predefined timeout.
     virtual wifi_error stop(std::unique_lock<std::recursive_mutex>* lock,
                             const std::function<void()>& on_complete_callback);
+    // Checks if legacy HAL has successfully started
+    bool isStarted();
     // Wrappers for all the functions in the legacy HAL function table.
     std::pair<wifi_error, std::string> getDriverVersion(
         const std::string& iface_name);
diff --git a/wifi/hostapd/1.0/Android.bp b/wifi/hostapd/1.0/Android.bp
index a17e153..9ee976e 100644
--- a/wifi/hostapd/1.0/Android.bp
+++ b/wifi/hostapd/1.0/Android.bp
@@ -14,10 +14,6 @@
         "android.hardware.wifi.supplicant@1.0",
         "android.hidl.base@1.0",
     ],
-    types: [
-        "HostapdStatus",
-        "HostapdStatusCode",
-    ],
     gen_java: true,
 }
 
diff --git a/wifi/offload/1.0/Android.bp b/wifi/offload/1.0/Android.bp
index c6c0e7a..1a9ae73 100644
--- a/wifi/offload/1.0/Android.bp
+++ b/wifi/offload/1.0/Android.bp
@@ -14,20 +14,6 @@
     interfaces: [
         "android.hidl.base@1.0",
     ],
-    types: [
-        "Capability",
-        "LogRecord",
-        "NetworkInfo",
-        "OffloadStatus",
-        "OffloadStatusCode",
-        "RecordName",
-        "ScanFilter",
-        "ScanParam",
-        "ScanRecord",
-        "ScanResult",
-        "ScanStats",
-        "SecurityMode",
-    ],
     gen_java: false,
 }
 
diff --git a/wifi/supplicant/1.0/Android.bp b/wifi/supplicant/1.0/Android.bp
index fc7ce55..c99706d 100644
--- a/wifi/supplicant/1.0/Android.bp
+++ b/wifi/supplicant/1.0/Android.bp
@@ -24,13 +24,6 @@
     interfaces: [
         "android.hidl.base@1.0",
     ],
-    types: [
-        "IfaceType",
-        "P2pGroupCapabilityMask",
-        "SupplicantStatus",
-        "SupplicantStatusCode",
-        "WpsConfigMethods",
-    ],
     gen_java: true,
 }