Merge "Add remaining VTS tests for IWifiChip." into main
diff --git a/audio/aidl/default/Stream.cpp b/audio/aidl/default/Stream.cpp
index 4525f6a..c138095 100644
--- a/audio/aidl/default/Stream.cpp
+++ b/audio/aidl/default/Stream.cpp
@@ -704,44 +704,7 @@
         LOG(ERROR) << __func__ << ": Worker start error: " << mWorker->getError();
         return ndk::ScopedAStatus::fromExceptionCode(EX_ILLEGAL_STATE);
     }
-    if (auto flags = getContext().getFlags();
-        (flags.getTag() == AudioIoFlags::Tag::input &&
-         isBitPositionFlagSet(flags.template get<AudioIoFlags::Tag::input>(),
-                              AudioInputFlags::FAST)) ||
-        (flags.getTag() == AudioIoFlags::Tag::output &&
-         (isBitPositionFlagSet(flags.template get<AudioIoFlags::Tag::output>(),
-                               AudioOutputFlags::FAST) ||
-          isBitPositionFlagSet(flags.template get<AudioIoFlags::Tag::output>(),
-                               AudioOutputFlags::SPATIALIZER)))) {
-        // FAST workers should be run with a SCHED_FIFO scheduler, however the host process
-        // might be lacking the capability to request it, thus a failure to set is not an error.
-        pid_t workerTid = mWorker->getTid();
-        if (workerTid > 0) {
-            constexpr int32_t kRTPriorityMin = 1;  // SchedulingPolicyService.PRIORITY_MIN (Java).
-            constexpr int32_t kRTPriorityMax = 3;  // SchedulingPolicyService.PRIORITY_MAX (Java).
-            int priorityBoost = kRTPriorityMax;
-            if (flags.getTag() == AudioIoFlags::Tag::output &&
-                isBitPositionFlagSet(flags.template get<AudioIoFlags::Tag::output>(),
-                                     AudioOutputFlags::SPATIALIZER)) {
-                const int32_t sptPrio =
-                        property_get_int32("audio.spatializer.priority", kRTPriorityMin);
-                if (sptPrio >= kRTPriorityMin && sptPrio <= kRTPriorityMax) {
-                    priorityBoost = sptPrio;
-                } else {
-                    LOG(WARNING) << __func__ << ": invalid spatializer priority: " << sptPrio;
-                    return ndk::ScopedAStatus::ok();
-                }
-            }
-            struct sched_param param = {
-                    .sched_priority = priorityBoost,
-            };
-            if (sched_setscheduler(workerTid, SCHED_FIFO | SCHED_RESET_ON_FORK, &param) != 0) {
-                PLOG(WARNING) << __func__ << ": failed to set FIFO scheduler and priority";
-            }
-        } else {
-            LOG(WARNING) << __func__ << ": invalid worker tid: " << workerTid;
-        }
-    }
+    setWorkerThreadPriority(mWorker->getTid());
     getContext().getCommandMQ()->setErrorHandler(
             fmqErrorHandler<StreamContext::CommandMQ::Error>("CommandMQ"));
     getContext().getReplyMQ()->setErrorHandler(
@@ -830,6 +793,42 @@
     }
 }
 
+void StreamCommonImpl::setWorkerThreadPriority(pid_t workerTid) {
+    // FAST workers should be run with a SCHED_FIFO scheduler, however the host process
+    // might be lacking the capability to request it, thus a failure to set is not an error.
+    if (auto flags = getContext().getFlags();
+        (flags.getTag() == AudioIoFlags::Tag::input &&
+         isBitPositionFlagSet(flags.template get<AudioIoFlags::Tag::input>(),
+                              AudioInputFlags::FAST)) ||
+        (flags.getTag() == AudioIoFlags::Tag::output &&
+         (isBitPositionFlagSet(flags.template get<AudioIoFlags::Tag::output>(),
+                               AudioOutputFlags::FAST) ||
+          isBitPositionFlagSet(flags.template get<AudioIoFlags::Tag::output>(),
+                               AudioOutputFlags::SPATIALIZER)))) {
+        constexpr int32_t kRTPriorityMin = 1;  // SchedulingPolicyService.PRIORITY_MIN (Java).
+        constexpr int32_t kRTPriorityMax = 3;  // SchedulingPolicyService.PRIORITY_MAX (Java).
+        int priorityBoost = kRTPriorityMax;
+        if (flags.getTag() == AudioIoFlags::Tag::output &&
+            isBitPositionFlagSet(flags.template get<AudioIoFlags::Tag::output>(),
+                                 AudioOutputFlags::SPATIALIZER)) {
+            const int32_t sptPrio =
+                    property_get_int32("audio.spatializer.priority", kRTPriorityMin);
+            if (sptPrio >= kRTPriorityMin && sptPrio <= kRTPriorityMax) {
+                priorityBoost = sptPrio;
+            } else {
+                LOG(WARNING) << __func__ << ": invalid spatializer priority: " << sptPrio;
+                return;
+            }
+        }
+        struct sched_param param = {
+                .sched_priority = priorityBoost,
+        };
+        if (sched_setscheduler(workerTid, SCHED_FIFO | SCHED_RESET_ON_FORK, &param) != 0) {
+            PLOG(WARNING) << __func__ << ": failed to set FIFO scheduler and priority";
+        }
+    }
+}
+
 void StreamCommonImpl::stopAndJoinWorker() {
     stopWorker();
     LOG(DEBUG) << __func__ << ": joining the worker thread...";
diff --git a/audio/aidl/default/alsa/StreamAlsa.cpp b/audio/aidl/default/alsa/StreamAlsa.cpp
index c77bfca..114c4c0 100644
--- a/audio/aidl/default/alsa/StreamAlsa.cpp
+++ b/audio/aidl/default/alsa/StreamAlsa.cpp
@@ -23,9 +23,12 @@
 #include <Utils.h>
 #include <audio_utils/clock.h>
 #include <error/expected_utils.h>
+#include <media/AidlConversionCppNdk.h>
 
 #include "core-impl/StreamAlsa.h"
 
+using aidl::android::hardware::audio::common::getChannelCount;
+
 namespace aidl::android::hardware::audio::core {
 
 StreamAlsa::StreamAlsa(StreamContext* context, const Metadata& metadata, int readWriteRetries)
@@ -41,6 +44,34 @@
     cleanupWorker();
 }
 
+::android::NBAIO_Format StreamAlsa::getPipeFormat() const {
+    const audio_format_t audioFormat = VALUE_OR_FATAL(
+            aidl2legacy_AudioFormatDescription_audio_format_t(getContext().getFormat()));
+    const int channelCount = getChannelCount(getContext().getChannelLayout());
+    return ::android::Format_from_SR_C(getContext().getSampleRate(), channelCount, audioFormat);
+}
+
+::android::sp<::android::MonoPipe> StreamAlsa::makeSink(bool writeCanBlock) {
+    const ::android::NBAIO_Format format = getPipeFormat();
+    auto sink = ::android::sp<::android::MonoPipe>::make(mBufferSizeFrames, format, writeCanBlock);
+    const ::android::NBAIO_Format offers[1] = {format};
+    size_t numCounterOffers = 0;
+    ssize_t index = sink->negotiate(offers, 1, nullptr, numCounterOffers);
+    LOG_IF(FATAL, index != 0) << __func__ << ": Negotiation for the sink failed, index = " << index;
+    return sink;
+}
+
+::android::sp<::android::MonoPipeReader> StreamAlsa::makeSource(::android::MonoPipe* pipe) {
+    const ::android::NBAIO_Format format = getPipeFormat();
+    const ::android::NBAIO_Format offers[1] = {format};
+    auto source = ::android::sp<::android::MonoPipeReader>::make(pipe);
+    size_t numCounterOffers = 0;
+    ssize_t index = source->negotiate(offers, 1, nullptr, numCounterOffers);
+    LOG_IF(FATAL, index != 0) << __func__
+                              << ": Negotiation for the source failed, index = " << index;
+    return source;
+}
+
 ::android::status_t StreamAlsa::init() {
     return mConfig.has_value() ? ::android::OK : ::android::NO_INIT;
 }
@@ -64,7 +95,7 @@
 }
 
 ::android::status_t StreamAlsa::standby() {
-    mAlsaDeviceProxies.clear();
+    teardownIo();
     return ::android::OK;
 }
 
@@ -74,6 +105,8 @@
         return ::android::OK;
     }
     decltype(mAlsaDeviceProxies) alsaDeviceProxies;
+    decltype(mSources) sources;
+    decltype(mSinks) sinks;
     for (const auto& device : getDeviceProfiles()) {
         if ((device.direction == PCM_OUT && mIsInput) ||
             (device.direction == PCM_IN && !mIsInput)) {
@@ -95,11 +128,29 @@
             return ::android::NO_INIT;
         }
         alsaDeviceProxies.push_back(std::move(proxy));
+        auto sink = makeSink(mIsInput);  // Do not block the writer when it is on our thread.
+        if (sink != nullptr) {
+            sinks.push_back(sink);
+        } else {
+            return ::android::NO_INIT;
+        }
+        if (auto source = makeSource(sink.get()); source != nullptr) {
+            sources.push_back(source);
+        } else {
+            return ::android::NO_INIT;
+        }
     }
     if (alsaDeviceProxies.empty()) {
         return ::android::NO_INIT;
     }
     mAlsaDeviceProxies = std::move(alsaDeviceProxies);
+    mSources = std::move(sources);
+    mSinks = std::move(sinks);
+    mIoThreadIsRunning = true;
+    for (size_t i = 0; i < mAlsaDeviceProxies.size(); ++i) {
+        mIoThreads.emplace_back(mIsInput ? &StreamAlsa::inputIoThread : &StreamAlsa::outputIoThread,
+                                this, i);
+    }
     return ::android::OK;
 }
 
@@ -112,15 +163,30 @@
     const size_t bytesToTransfer = frameCount * mFrameSizeBytes;
     unsigned maxLatency = 0;
     if (mIsInput) {
-        // For input case, only support single device.
-        proxy_read_with_retries(mAlsaDeviceProxies[0].get(), buffer, bytesToTransfer,
-                                mReadWriteRetries);
-        maxLatency = proxy_get_latency(mAlsaDeviceProxies[0].get());
+        const size_t i = 0;  // For the input case, only support a single device.
+        LOG(VERBOSE) << __func__ << ": reading from sink " << i;
+        ssize_t framesRead = mSources[i]->read(buffer, frameCount);
+        LOG_IF(FATAL, framesRead < 0) << "Error reading from the pipe: " << framesRead;
+        if (ssize_t framesMissing = static_cast<ssize_t>(frameCount) - framesRead;
+            framesMissing > 0) {
+            LOG(WARNING) << __func__ << ": incomplete data received, inserting " << framesMissing
+                         << " frames of silence";
+            memset(static_cast<char*>(buffer) + framesRead * mFrameSizeBytes, 0,
+                   framesMissing * mFrameSizeBytes);
+        }
+        maxLatency = proxy_get_latency(mAlsaDeviceProxies[i].get());
     } else {
         alsa::applyGain(buffer, mGain, bytesToTransfer, mConfig.value().format, mConfig->channels);
-        for (auto& proxy : mAlsaDeviceProxies) {
-            proxy_write_with_retries(proxy.get(), buffer, bytesToTransfer, mReadWriteRetries);
-            maxLatency = std::max(maxLatency, proxy_get_latency(proxy.get()));
+        for (size_t i = 0; i < mAlsaDeviceProxies.size(); ++i) {
+            LOG(VERBOSE) << __func__ << ": writing into sink " << i;
+            ssize_t framesWritten = mSinks[i]->write(buffer, frameCount);
+            LOG_IF(FATAL, framesWritten < 0) << "Error writing into the pipe: " << framesWritten;
+            if (ssize_t framesLost = static_cast<ssize_t>(frameCount) - framesWritten;
+                framesLost > 0) {
+                LOG(WARNING) << __func__ << ": sink " << i << " incomplete data sent, dropping "
+                             << framesLost << " frames";
+            }
+            maxLatency = std::max(maxLatency, proxy_get_latency(mAlsaDeviceProxies[i].get()));
         }
     }
     *actualFrameCount = frameCount;
@@ -164,7 +230,7 @@
 }
 
 void StreamAlsa::shutdown() {
-    mAlsaDeviceProxies.clear();
+    teardownIo();
 }
 
 ndk::ScopedAStatus StreamAlsa::setGain(float gain) {
@@ -172,4 +238,80 @@
     return ndk::ScopedAStatus::ok();
 }
 
+void StreamAlsa::inputIoThread(size_t idx) {
+#if defined(__ANDROID__)
+    setWorkerThreadPriority(pthread_gettid_np(pthread_self()));
+    const std::string threadName = (std::string("in_") + std::to_string(idx)).substr(0, 15);
+    pthread_setname_np(pthread_self(), threadName.c_str());
+#endif
+    const size_t bufferSize = mBufferSizeFrames * mFrameSizeBytes;
+    std::vector<char> buffer(bufferSize);
+    while (mIoThreadIsRunning) {
+        if (int ret = proxy_read_with_retries(mAlsaDeviceProxies[idx].get(), &buffer[0], bufferSize,
+                                              mReadWriteRetries);
+            ret == 0) {
+            size_t bufferFramesWritten = 0;
+            while (bufferFramesWritten < mBufferSizeFrames) {
+                if (!mIoThreadIsRunning) return;
+                ssize_t framesWrittenOrError =
+                        mSinks[idx]->write(&buffer[0], mBufferSizeFrames - bufferFramesWritten);
+                if (framesWrittenOrError >= 0) {
+                    bufferFramesWritten += framesWrittenOrError;
+                } else {
+                    LOG(WARNING) << __func__ << "[" << idx
+                                 << "]: Error while writing into the pipe: "
+                                 << framesWrittenOrError;
+                }
+            }
+        } else {
+            // Errors when the stream is being stopped are expected.
+            LOG_IF(WARNING, mIoThreadIsRunning)
+                    << __func__ << "[" << idx << "]: Error reading from ALSA: " << ret;
+        }
+    }
+}
+
+void StreamAlsa::outputIoThread(size_t idx) {
+#if defined(__ANDROID__)
+    setWorkerThreadPriority(pthread_gettid_np(pthread_self()));
+    const std::string threadName = (std::string("out_") + std::to_string(idx)).substr(0, 15);
+    pthread_setname_np(pthread_self(), threadName.c_str());
+#endif
+    const size_t bufferSize = mBufferSizeFrames * mFrameSizeBytes;
+    std::vector<char> buffer(bufferSize);
+    while (mIoThreadIsRunning) {
+        ssize_t framesRead = mSources[idx]->read(&buffer[0], mBufferSizeFrames);
+        if (framesRead > 0) {
+            int ret = proxy_write_with_retries(mAlsaDeviceProxies[idx].get(), &buffer[0],
+                                               framesRead * mFrameSizeBytes, mReadWriteRetries);
+            // Errors when the stream is being stopped are expected.
+            LOG_IF(WARNING, ret != 0 && mIoThreadIsRunning)
+                    << __func__ << "[" << idx << "]: Error writing into ALSA: " << ret;
+        }
+    }
+}
+
+void StreamAlsa::teardownIo() {
+    mIoThreadIsRunning = false;
+    if (mIsInput) {
+        LOG(DEBUG) << __func__ << ": shutting down pipes";
+        for (auto& sink : mSinks) {
+            sink->shutdown(true);
+        }
+    }
+    LOG(DEBUG) << __func__ << ": stopping PCM streams";
+    for (const auto& proxy : mAlsaDeviceProxies) {
+        proxy_stop(proxy.get());
+    }
+    LOG(DEBUG) << __func__ << ": joining threads";
+    for (auto& thread : mIoThreads) {
+        if (thread.joinable()) thread.join();
+    }
+    mIoThreads.clear();
+    LOG(DEBUG) << __func__ << ": closing PCM devices";
+    mAlsaDeviceProxies.clear();
+    mSources.clear();
+    mSinks.clear();
+}
+
 }  // namespace aidl::android::hardware::audio::core
diff --git a/audio/aidl/default/alsa/Utils.h b/audio/aidl/default/alsa/Utils.h
index a97ea10..53dcfd0 100644
--- a/audio/aidl/default/alsa/Utils.h
+++ b/audio/aidl/default/alsa/Utils.h
@@ -48,8 +48,8 @@
   public:
     DeviceProxy();  // Constructs a "null" proxy.
     explicit DeviceProxy(const DeviceProfile& deviceProfile);
-    alsa_device_profile* getProfile() { return mProfile.get(); }
-    alsa_device_proxy* get() { return mProxy.get(); }
+    alsa_device_profile* getProfile() const { return mProfile.get(); }
+    alsa_device_proxy* get() const { return mProxy.get(); }
 
   private:
     static void alsaProxyDeleter(alsa_device_proxy* proxy);
diff --git a/audio/aidl/default/include/core-impl/Stream.h b/audio/aidl/default/include/core-impl/Stream.h
index 8297fc5..304f9b7 100644
--- a/audio/aidl/default/include/core-impl/Stream.h
+++ b/audio/aidl/default/include/core-impl/Stream.h
@@ -475,6 +475,7 @@
     // the destructor in order to stop and join the worker thread in the case when the client
     // has not called 'IStreamCommon::close' method.
     void cleanupWorker();
+    void setWorkerThreadPriority(pid_t workerTid);
     void stopAndJoinWorker();
     void stopWorker();
 
diff --git a/audio/aidl/default/include/core-impl/StreamAlsa.h b/audio/aidl/default/include/core-impl/StreamAlsa.h
index 8bdf208..7e0f0ac 100644
--- a/audio/aidl/default/include/core-impl/StreamAlsa.h
+++ b/audio/aidl/default/include/core-impl/StreamAlsa.h
@@ -16,9 +16,14 @@
 
 #pragma once
 
+#include <atomic>
 #include <optional>
+#include <thread>
 #include <vector>
 
+#include <media/nbaio/MonoPipe.h>
+#include <media/nbaio/MonoPipeReader.h>
+
 #include "Stream.h"
 #include "alsa/Utils.h"
 
@@ -57,11 +62,24 @@
     const bool mIsInput;
     const std::optional<struct pcm_config> mConfig;
     const int mReadWriteRetries;
-    // All fields below are only used on the worker thread.
-    std::vector<alsa::DeviceProxy> mAlsaDeviceProxies;
 
   private:
+    ::android::NBAIO_Format getPipeFormat() const;
+    ::android::sp<::android::MonoPipe> makeSink(bool writeCanBlock);
+    ::android::sp<::android::MonoPipeReader> makeSource(::android::MonoPipe* pipe);
+    void inputIoThread(size_t idx);
+    void outputIoThread(size_t idx);
+    void teardownIo();
+
     std::atomic<float> mGain = 1.0;
+
+    // All fields below are only used on the worker thread.
+    std::vector<alsa::DeviceProxy> mAlsaDeviceProxies;
+    // Only 'libnbaio_mono' is vendor-accessible, thus no access to the multi-reader Pipe.
+    std::vector<::android::sp<::android::MonoPipe>> mSinks;
+    std::vector<::android::sp<::android::MonoPipeReader>> mSources;
+    std::vector<std::thread> mIoThreads;
+    std::atomic<bool> mIoThreadIsRunning = false;  // used by all threads
 };
 
 }  // namespace aidl::android::hardware::audio::core
diff --git a/audio/policy/1.0/vts/functional/Android.bp b/audio/policy/1.0/vts/functional/Android.bp
index c2335e4..ccdd771 100644
--- a/audio/policy/1.0/vts/functional/Android.bp
+++ b/audio/policy/1.0/vts/functional/Android.bp
@@ -10,6 +10,11 @@
 
 cc_test {
     name: "VtsHalAudioPolicyV1_0TargetTest",
+    defaults: [
+        "latest_android_hardware_audio_common_ndk_static",
+        "latest_android_hardware_audio_core_ndk_static",
+        "latest_android_media_audio_common_types_ndk_static",
+    ],
     srcs: [
         "ValidateEngineConfiguration.cpp",
     ],
@@ -17,6 +22,7 @@
         "libxml2",
         "liblog",
         "libmedia_helper",
+        "libaidlvintf_gtest_helper",
         "libaudiopolicycapengine_config",
         "libaudiopolicycomponents",
         "libaudiopolicyengine_config",
@@ -33,6 +39,8 @@
     ],
     shared_libs: [
         "libaudiofoundation",
+        "libbinder_ndk",
+        "libvintf",
     ],
     // Use test_config for vts suite.
     // TODO(b/146104851): Add auto-gen rules and remove it.
diff --git a/audio/policy/1.0/vts/functional/ValidateEngineConfiguration.cpp b/audio/policy/1.0/vts/functional/ValidateEngineConfiguration.cpp
index 5741fa9..0472174 100644
--- a/audio/policy/1.0/vts/functional/ValidateEngineConfiguration.cpp
+++ b/audio/policy/1.0/vts/functional/ValidateEngineConfiguration.cpp
@@ -16,6 +16,9 @@
 
 #include <EngineConfig.h>
 #include <ParameterManagerWrapper.h>
+#include <aidl/Vintf.h>
+#include <aidl/android/hardware/audio/core/IConfig.h>
+#include <android/binder_manager.h>
 
 #include <gtest/gtest.h>
 
@@ -34,12 +37,30 @@
 static const std::string configurableConfig =
         "parameter-framework/ParameterFrameworkConfigurationPolicy.xml";
 
+static bool deviceUsesAidlHal() {
+    using aidl::android::hardware::audio::core::IConfig;
+
+    const auto configName = android::getAidlHalInstanceNames(IConfig::descriptor);
+    if (!configName.empty()) {
+        ndk::SpAIBinder binder =
+                ndk::SpAIBinder(AServiceManager_waitForService(configName[0].c_str()));
+        if (binder != nullptr) {
+            std::shared_ptr<IConfig> configItf = IConfig::fromBinder(binder);
+            return configItf != nullptr;
+        }
+    }
+    return false;
+}
+
 /**
  * @brief TEST to ensure the audio policy engine configuration file is validating schemas.
  * Note: this configuration file is not mandatory, an hardcoded fallback is provided, so
  * it does not fail if not found.
  */
 TEST(ValidateConfiguration, audioPolicyEngineConfiguration) {
+    if (deviceUsesAidlHal()) {
+        GTEST_SKIP() << "Device uses AIDL HAL, n-op.";
+    }
     RecordProperty("description",
                    "Verify that the audio policy engine configuration file "
                    "is valid according to the schemas");
@@ -48,11 +69,12 @@
 }
 
 /**
- * @brief deviceUsesConfigurableEngine checks if the configuration file for
- * the engine presents on the device AND
- * for the configurable engine (aka Parameter-Framework top configuration file) presents.
+ * @brief deviceUsesHidlConfigurableEngine checks if there is no AIDL HAL,
+ * AND the configuration file for the engine presents on the device
+ * AND for the configurable engine (aka Parameter-Framework top configuration file) presents.
  */
-static bool deviceUsesConfigurableEngine() {
+static bool deviceUsesHidlConfigurableEngine() {
+    if (deviceUsesAidlHal()) return false;
     return android::hardware::audio::common::test::utility::validateXmlMultipleLocations<true>(
                    "", "", "", config.c_str(), android::audio_get_configuration_paths(),
                    schema.c_str()) &&
@@ -62,8 +84,8 @@
 }
 
 TEST(ValidateConfiguration, audioPolicyEngineConfigurable) {
-    if (!deviceUsesConfigurableEngine()) {
-        GTEST_SKIP() << "Device using legacy engine without parameter-framework, n-op.";
+    if (!deviceUsesHidlConfigurableEngine()) {
+        GTEST_SKIP() << "Device uses AIDL HAL or legacy engine without parameter-framework, n-op.";
     }
     RecordProperty("description",
                    "Verify that the audio policy engine PFW configuration files "
@@ -78,7 +100,8 @@
         ASSERT_EQ(result.nbSkippedElement, 0) << "skipped %zu elements " << result.nbSkippedElement;
 
         std::unique_ptr<android::audio_policy::ParameterManagerWrapper> policyParameterMgr(
-                new android::audio_policy::ParameterManagerWrapper(validateSchema, schemasUri));
+                new android::audio_policy::ParameterManagerWrapper(
+                        true /*useLegacyConfigurationFile*/, validateSchema, schemasUri));
         ASSERT_NE(nullptr, policyParameterMgr) << "failed to create Audio Policy Engine PFW";
 
         // Load the criterion types and criteria
diff --git a/automotive/vehicle/aidl/aidl_test/VehiclePropertyAnnotationCppTest.cpp b/automotive/vehicle/aidl/aidl_test/VehiclePropertyAnnotationCppTest.cpp
index 2aad2b6..dd82d1b 100644
--- a/automotive/vehicle/aidl/aidl_test/VehiclePropertyAnnotationCppTest.cpp
+++ b/automotive/vehicle/aidl/aidl_test/VehiclePropertyAnnotationCppTest.cpp
@@ -24,9 +24,10 @@
 #include <unordered_set>
 
 namespace aidl_vehicle = ::aidl::android::hardware::automotive::vehicle;
-using aidl_vehicle::AccessForVehicleProperty;
+using aidl_vehicle::AllowedAccessForVehicleProperty;
 using aidl_vehicle::AnnotationsForVehicleProperty;
 using aidl_vehicle::ChangeModeForVehicleProperty;
+using aidl_vehicle::DefaultAccessForVehicleProperty;
 using aidl_vehicle::VehicleProperty;
 using testing::IsEmpty;
 
@@ -53,8 +54,14 @@
             << "generate_annotation_enums.py to update.";
 }
 
-TEST(VehiclePropertyAnnotationCppTest, testAccess) {
-    ASSERT_TRUE(doesAnnotationMapContainsAllProps(AccessForVehicleProperty))
+TEST(VehiclePropertyAnnotationCppTest, testDefaultAccess) {
+    ASSERT_TRUE(doesAnnotationMapContainsAllProps(DefaultAccessForVehicleProperty))
+            << "Outdated annotation-generated AIDL files. Please run "
+            << "generate_annotation_enums.py to update.";
+}
+
+TEST(VehiclePropertyAnnotationCppTest, testAllowedAccess) {
+    ASSERT_TRUE(doesAnnotationMapContainsAllProps(AllowedAccessForVehicleProperty))
             << "Outdated annotation-generated AIDL files. Please run "
             << "generate_annotation_enums.py to update.";
 }
diff --git a/automotive/vehicle/aidl/generated_lib/4/cpp/AccessForVehicleProperty.h b/automotive/vehicle/aidl/generated_lib/4/cpp/AccessForVehicleProperty.h
index 8441af3..eea1c5c 100644
--- a/automotive/vehicle/aidl/generated_lib/4/cpp/AccessForVehicleProperty.h
+++ b/automotive/vehicle/aidl/generated_lib/4/cpp/AccessForVehicleProperty.h
@@ -29,13 +29,9 @@
 
 #include <unordered_map>
 
-namespace aidl {
-namespace android {
-namespace hardware {
-namespace automotive {
-namespace vehicle {
-
-std::unordered_map<VehicleProperty, VehiclePropertyAccess> AccessForVehicleProperty = {
+namespace aidl::android::hardware::automotive::vehicle {
+// This map represents the default access mode for each property.
+std::unordered_map<VehicleProperty, VehiclePropertyAccess> DefaultAccessForVehicleProperty = {
         {VehicleProperty::INFO_VIN, VehiclePropertyAccess::READ},
         {VehicleProperty::INFO_MAKE, VehiclePropertyAccess::READ},
         {VehicleProperty::INFO_MODEL, VehiclePropertyAccess::READ},
@@ -318,8 +314,288 @@
         {VehicleProperty::LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_STATE, VehiclePropertyAccess::READ},
 };
 
-}  // namespace vehicle
-}  // namespace automotive
-}  // namespace hardware
-}  // namespace android
-}  // aidl
+// This map represents the allowed access modes for each property.
+std::unordered_map<VehicleProperty, std::vector<VehiclePropertyAccess>>
+        AllowedAccessForVehicleProperty = {
+        {VehicleProperty::INFO_VIN, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::INFO_MAKE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::INFO_MODEL, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::INFO_MODEL_YEAR, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::INFO_FUEL_CAPACITY, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::INFO_FUEL_TYPE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::INFO_EV_BATTERY_CAPACITY, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::INFO_EV_CONNECTOR_TYPE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::INFO_FUEL_DOOR_LOCATION, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::INFO_EV_PORT_LOCATION, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::INFO_DRIVER_SEAT, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::INFO_EXTERIOR_DIMENSIONS, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::INFO_MULTI_EV_PORT_LOCATIONS, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::INFO_MODEL_TRIM, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::INFO_VEHICLE_SIZE_CLASS, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::PERF_ODOMETER, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::PERF_VEHICLE_SPEED, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::PERF_VEHICLE_SPEED_DISPLAY, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::PERF_STEERING_ANGLE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::PERF_REAR_STEERING_ANGLE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::INSTANTANEOUS_FUEL_ECONOMY, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::INSTANTANEOUS_EV_EFFICIENCY, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::ENGINE_COOLANT_TEMP, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::ENGINE_OIL_LEVEL, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::ENGINE_OIL_TEMP, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::ENGINE_RPM, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::WHEEL_TICK, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::FUEL_LEVEL, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::FUEL_DOOR_OPEN, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::EV_BATTERY_LEVEL, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::EV_CURRENT_BATTERY_CAPACITY, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::EV_CHARGE_PORT_OPEN, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::EV_CHARGE_PORT_CONNECTED, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::EV_BATTERY_INSTANTANEOUS_CHARGE_RATE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::RANGE_REMAINING, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::EV_BATTERY_AVERAGE_TEMPERATURE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::TIRE_PRESSURE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::CRITICALLY_LOW_TIRE_PRESSURE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::ACCELERATOR_PEDAL_COMPRESSION_PERCENTAGE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::BRAKE_PEDAL_COMPRESSION_PERCENTAGE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::BRAKE_PAD_WEAR_PERCENTAGE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::BRAKE_FLUID_LEVEL_LOW, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::VEHICLE_PASSIVE_SUSPENSION_HEIGHT, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::ENGINE_IDLE_AUTO_STOP_ENABLED, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::IMPACT_DETECTED, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::VEHICLE_HORN_ENGAGED, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::GEAR_SELECTION, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::CURRENT_GEAR, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::PARKING_BRAKE_ON, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::PARKING_BRAKE_AUTO_APPLY, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::EV_BRAKE_REGENERATION_LEVEL, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::FUEL_LEVEL_LOW, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::NIGHT_MODE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::TURN_SIGNAL_STATE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::IGNITION_STATE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::ABS_ACTIVE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::TRACTION_CONTROL_ACTIVE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::EV_STOPPING_MODE, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::ELECTRONIC_STABILITY_CONTROL_ENABLED, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::ELECTRONIC_STABILITY_CONTROL_STATE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::TURN_SIGNAL_LIGHT_STATE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::TURN_SIGNAL_SWITCH, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::HVAC_FAN_SPEED, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::HVAC_FAN_DIRECTION, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::HVAC_TEMPERATURE_CURRENT, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::HVAC_TEMPERATURE_SET, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::HVAC_DEFROSTER, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::HVAC_AC_ON, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::HVAC_MAX_AC_ON, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::HVAC_MAX_DEFROST_ON, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::HVAC_RECIRC_ON, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::HVAC_DUAL_ON, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::HVAC_AUTO_ON, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::HVAC_SEAT_TEMPERATURE, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::HVAC_SIDE_MIRROR_HEAT, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::HVAC_STEERING_WHEEL_HEAT, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::HVAC_TEMPERATURE_DISPLAY_UNITS, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::HVAC_ACTUAL_FAN_SPEED_RPM, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::HVAC_POWER_ON, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::HVAC_FAN_DIRECTION_AVAILABLE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::HVAC_AUTO_RECIRC_ON, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::HVAC_SEAT_VENTILATION, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::HVAC_ELECTRIC_DEFROSTER_ON, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::HVAC_TEMPERATURE_VALUE_SUGGESTION, {VehiclePropertyAccess::READ_WRITE}},
+        {VehicleProperty::DISTANCE_DISPLAY_UNITS, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::FUEL_VOLUME_DISPLAY_UNITS, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::TIRE_PRESSURE_DISPLAY_UNITS, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::EV_BATTERY_DISPLAY_UNITS, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::FUEL_CONSUMPTION_UNITS_DISTANCE_OVER_VOLUME, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::VEHICLE_SPEED_DISPLAY_UNITS, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::EXTERNAL_CAR_TIME, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::ANDROID_EPOCH_TIME, {VehiclePropertyAccess::WRITE}},
+        {VehicleProperty::STORAGE_ENCRYPTION_BINDING_SEED, {VehiclePropertyAccess::READ_WRITE}},
+        {VehicleProperty::ENV_OUTSIDE_TEMPERATURE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::AP_POWER_STATE_REQ, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::AP_POWER_STATE_REPORT, {VehiclePropertyAccess::READ_WRITE}},
+        {VehicleProperty::AP_POWER_BOOTUP_REASON, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::DISPLAY_BRIGHTNESS, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::PER_DISPLAY_BRIGHTNESS, {VehiclePropertyAccess::READ_WRITE}},
+        {VehicleProperty::VALET_MODE_ENABLED, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::HEAD_UP_DISPLAY_ENABLED, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::HW_KEY_INPUT, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::HW_KEY_INPUT_V2, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::HW_MOTION_INPUT, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::HW_ROTARY_INPUT, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::HW_CUSTOM_INPUT, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::DOOR_POS, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::DOOR_MOVE, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::DOOR_LOCK, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::DOOR_CHILD_LOCK_ENABLED, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::MIRROR_Z_POS, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::MIRROR_Z_MOVE, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::MIRROR_Y_POS, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::MIRROR_Y_MOVE, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::MIRROR_LOCK, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::MIRROR_FOLD, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::MIRROR_AUTO_FOLD_ENABLED, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::MIRROR_AUTO_TILT_ENABLED, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::SEAT_MEMORY_SELECT, {VehiclePropertyAccess::WRITE}},
+        {VehicleProperty::SEAT_MEMORY_SET, {VehiclePropertyAccess::WRITE}},
+        {VehicleProperty::SEAT_BELT_BUCKLED, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::SEAT_BELT_HEIGHT_POS, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::SEAT_BELT_HEIGHT_MOVE, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::SEAT_FORE_AFT_POS, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::SEAT_FORE_AFT_MOVE, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::SEAT_BACKREST_ANGLE_1_POS, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::SEAT_BACKREST_ANGLE_1_MOVE, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::SEAT_BACKREST_ANGLE_2_POS, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::SEAT_BACKREST_ANGLE_2_MOVE, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::SEAT_HEIGHT_POS, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::SEAT_HEIGHT_MOVE, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::SEAT_DEPTH_POS, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::SEAT_DEPTH_MOVE, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::SEAT_TILT_POS, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::SEAT_TILT_MOVE, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::SEAT_LUMBAR_FORE_AFT_POS, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::SEAT_LUMBAR_FORE_AFT_MOVE, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::SEAT_LUMBAR_SIDE_SUPPORT_POS, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::SEAT_LUMBAR_SIDE_SUPPORT_MOVE, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::SEAT_HEADREST_HEIGHT_POS, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::SEAT_HEADREST_HEIGHT_POS_V2, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::SEAT_HEADREST_HEIGHT_MOVE, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::SEAT_HEADREST_ANGLE_POS, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::SEAT_HEADREST_ANGLE_MOVE, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::SEAT_HEADREST_FORE_AFT_POS, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::SEAT_HEADREST_FORE_AFT_MOVE, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::SEAT_FOOTWELL_LIGHTS_STATE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::SEAT_FOOTWELL_LIGHTS_SWITCH, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::SEAT_EASY_ACCESS_ENABLED, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::SEAT_AIRBAG_ENABLED, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::SEAT_AIRBAGS_DEPLOYED, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::SEAT_CUSHION_SIDE_SUPPORT_POS, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::SEAT_CUSHION_SIDE_SUPPORT_MOVE, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::SEAT_LUMBAR_VERTICAL_POS, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::SEAT_LUMBAR_VERTICAL_MOVE, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::SEAT_WALK_IN_POS, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::SEAT_BELT_PRETENSIONER_DEPLOYED, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::SEAT_OCCUPANCY, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::WINDOW_POS, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::WINDOW_MOVE, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::WINDOW_LOCK, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::WINDSHIELD_WIPERS_PERIOD, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::WINDSHIELD_WIPERS_STATE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::WINDSHIELD_WIPERS_SWITCH, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::STEERING_WHEEL_DEPTH_POS, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::STEERING_WHEEL_DEPTH_MOVE, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::STEERING_WHEEL_HEIGHT_POS, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::STEERING_WHEEL_HEIGHT_MOVE, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::STEERING_WHEEL_THEFT_LOCK_ENABLED, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::STEERING_WHEEL_LOCKED, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::STEERING_WHEEL_EASY_ACCESS_ENABLED, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::GLOVE_BOX_DOOR_POS, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::GLOVE_BOX_LOCKED, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::VEHICLE_MAP_SERVICE, {VehiclePropertyAccess::READ_WRITE}},
+        {VehicleProperty::LOCATION_CHARACTERIZATION, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::ULTRASONICS_SENSOR_POSITION, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::ULTRASONICS_SENSOR_ORIENTATION, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::ULTRASONICS_SENSOR_FIELD_OF_VIEW, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::ULTRASONICS_SENSOR_DETECTION_RANGE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::ULTRASONICS_SENSOR_SUPPORTED_RANGES, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::ULTRASONICS_SENSOR_MEASURED_DISTANCE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::OBD2_LIVE_FRAME, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::OBD2_FREEZE_FRAME, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::OBD2_FREEZE_FRAME_INFO, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::OBD2_FREEZE_FRAME_CLEAR, {VehiclePropertyAccess::WRITE}},
+        {VehicleProperty::HEADLIGHTS_STATE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::HIGH_BEAM_LIGHTS_STATE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::FOG_LIGHTS_STATE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::HAZARD_LIGHTS_STATE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::HEADLIGHTS_SWITCH, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::HIGH_BEAM_LIGHTS_SWITCH, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::FOG_LIGHTS_SWITCH, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::HAZARD_LIGHTS_SWITCH, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::CABIN_LIGHTS_STATE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::CABIN_LIGHTS_SWITCH, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::READING_LIGHTS_STATE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::READING_LIGHTS_SWITCH, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::STEERING_WHEEL_LIGHTS_STATE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::STEERING_WHEEL_LIGHTS_SWITCH, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::SUPPORT_CUSTOMIZE_VENDOR_PERMISSION, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::DISABLED_OPTIONAL_FEATURES, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::INITIAL_USER_INFO, {VehiclePropertyAccess::READ_WRITE}},
+        {VehicleProperty::SWITCH_USER, {VehiclePropertyAccess::READ_WRITE}},
+        {VehicleProperty::CREATE_USER, {VehiclePropertyAccess::READ_WRITE}},
+        {VehicleProperty::REMOVE_USER, {VehiclePropertyAccess::WRITE}},
+        {VehicleProperty::USER_IDENTIFICATION_ASSOCIATION, {VehiclePropertyAccess::READ_WRITE}},
+        {VehicleProperty::EVS_SERVICE_REQUEST, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::POWER_POLICY_REQ, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::POWER_POLICY_GROUP_REQ, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::CURRENT_POWER_POLICY, {VehiclePropertyAccess::READ_WRITE}},
+        {VehicleProperty::WATCHDOG_ALIVE, {VehiclePropertyAccess::WRITE}},
+        {VehicleProperty::WATCHDOG_TERMINATED_PROCESS, {VehiclePropertyAccess::WRITE}},
+        {VehicleProperty::VHAL_HEARTBEAT, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::CLUSTER_SWITCH_UI, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::CLUSTER_DISPLAY_STATE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::CLUSTER_REPORT_STATE, {VehiclePropertyAccess::WRITE}},
+        {VehicleProperty::CLUSTER_REQUEST_DISPLAY, {VehiclePropertyAccess::WRITE}},
+        {VehicleProperty::CLUSTER_NAVIGATION_STATE, {VehiclePropertyAccess::WRITE}},
+        {VehicleProperty::ELECTRONIC_TOLL_COLLECTION_CARD_TYPE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::ELECTRONIC_TOLL_COLLECTION_CARD_STATUS, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::FRONT_FOG_LIGHTS_STATE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::FRONT_FOG_LIGHTS_SWITCH, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::REAR_FOG_LIGHTS_STATE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::REAR_FOG_LIGHTS_SWITCH, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::EV_CHARGE_CURRENT_DRAW_LIMIT, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::EV_CHARGE_PERCENT_LIMIT, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::EV_CHARGE_STATE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::EV_CHARGE_SWITCH, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::EV_CHARGE_TIME_REMAINING, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::EV_REGENERATIVE_BRAKING_STATE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::TRAILER_PRESENT, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::VEHICLE_CURB_WEIGHT, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::GENERAL_SAFETY_REGULATION_COMPLIANCE_REQUIREMENT, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::SUPPORTED_PROPERTY_IDS, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::SHUTDOWN_REQUEST, {VehiclePropertyAccess::WRITE}},
+        {VehicleProperty::VEHICLE_IN_USE, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::CLUSTER_HEARTBEAT, {VehiclePropertyAccess::WRITE}},
+        {VehicleProperty::VEHICLE_DRIVING_AUTOMATION_CURRENT_LEVEL, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::VEHICLE_DRIVING_AUTOMATION_TARGET_LEVEL, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::CAMERA_SERVICE_CURRENT_STATE, {VehiclePropertyAccess::WRITE}},
+        {VehicleProperty::PER_DISPLAY_MAX_BRIGHTNESS, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::AUTOMATIC_EMERGENCY_BRAKING_ENABLED, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::AUTOMATIC_EMERGENCY_BRAKING_STATE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::FORWARD_COLLISION_WARNING_ENABLED, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::FORWARD_COLLISION_WARNING_STATE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::BLIND_SPOT_WARNING_ENABLED, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::BLIND_SPOT_WARNING_STATE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::LANE_DEPARTURE_WARNING_ENABLED, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::LANE_DEPARTURE_WARNING_STATE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::LANE_KEEP_ASSIST_ENABLED, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::LANE_KEEP_ASSIST_STATE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::LANE_CENTERING_ASSIST_ENABLED, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::LANE_CENTERING_ASSIST_COMMAND, {VehiclePropertyAccess::WRITE}},
+        {VehicleProperty::LANE_CENTERING_ASSIST_STATE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::EMERGENCY_LANE_KEEP_ASSIST_ENABLED, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::EMERGENCY_LANE_KEEP_ASSIST_STATE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::CRUISE_CONTROL_ENABLED, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::CRUISE_CONTROL_TYPE, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::CRUISE_CONTROL_STATE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::CRUISE_CONTROL_COMMAND, {VehiclePropertyAccess::WRITE}},
+        {VehicleProperty::CRUISE_CONTROL_TARGET_SPEED, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::ADAPTIVE_CRUISE_CONTROL_TARGET_TIME_GAP, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::ADAPTIVE_CRUISE_CONTROL_LEAD_VEHICLE_MEASURED_DISTANCE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::HANDS_ON_DETECTION_ENABLED, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::HANDS_ON_DETECTION_DRIVER_STATE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::HANDS_ON_DETECTION_WARNING, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::DRIVER_DROWSINESS_ATTENTION_SYSTEM_ENABLED, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::DRIVER_DROWSINESS_ATTENTION_STATE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::DRIVER_DROWSINESS_ATTENTION_WARNING_ENABLED, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::DRIVER_DROWSINESS_ATTENTION_WARNING, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::DRIVER_DISTRACTION_SYSTEM_ENABLED, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::DRIVER_DISTRACTION_STATE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::DRIVER_DISTRACTION_WARNING_ENABLED, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::DRIVER_DISTRACTION_WARNING, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::LOW_SPEED_COLLISION_WARNING_ENABLED, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::LOW_SPEED_COLLISION_WARNING_STATE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::CROSS_TRAFFIC_MONITORING_ENABLED, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::CROSS_TRAFFIC_MONITORING_WARNING_STATE, {VehiclePropertyAccess::READ}},
+        {VehicleProperty::LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_ENABLED, {VehiclePropertyAccess::READ_WRITE, VehiclePropertyAccess::READ}},
+        {VehicleProperty::LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_STATE, {VehiclePropertyAccess::READ}},
+};
+}  // aidl::android::hardware::automotive::vehicle
diff --git a/automotive/vehicle/aidl/generated_lib/4/cpp/AnnotationsForVehicleProperty.h b/automotive/vehicle/aidl/generated_lib/4/cpp/AnnotationsForVehicleProperty.h
index 8ff370a..27301a5 100644
--- a/automotive/vehicle/aidl/generated_lib/4/cpp/AnnotationsForVehicleProperty.h
+++ b/automotive/vehicle/aidl/generated_lib/4/cpp/AnnotationsForVehicleProperty.h
@@ -30,298 +30,288 @@
 #include <unordered_map>
 #include <unordered_set>
 
-namespace aidl {
-namespace android {
-namespace hardware {
-namespace automotive {
-namespace vehicle {
-
+namespace aidl::android::hardware::automotive::vehicle {
 std::unordered_map<VehicleProperty, std::unordered_set<std::string>>
         AnnotationsForVehicleProperty = {
-        {VehicleProperty::INFO_VIN, {"change_mode", "access", "version"}},
-        {VehicleProperty::INFO_MAKE, {"change_mode", "access", "version"}},
-        {VehicleProperty::INFO_MODEL, {"change_mode", "access", "version"}},
-        {VehicleProperty::INFO_MODEL_YEAR, {"change_mode", "access", "version", "unit"}},
-        {VehicleProperty::INFO_FUEL_CAPACITY, {"change_mode", "access", "version", "unit"}},
-        {VehicleProperty::INFO_FUEL_TYPE, {"change_mode", "access", "version", "data_enum"}},
-        {VehicleProperty::INFO_EV_BATTERY_CAPACITY, {"change_mode", "access", "version", "unit"}},
-        {VehicleProperty::INFO_EV_CONNECTOR_TYPE, {"change_mode", "access", "version", "data_enum"}},
-        {VehicleProperty::INFO_FUEL_DOOR_LOCATION, {"change_mode", "access", "version", "data_enum"}},
-        {VehicleProperty::INFO_EV_PORT_LOCATION, {"change_mode", "access", "version", "data_enum"}},
-        {VehicleProperty::INFO_DRIVER_SEAT, {"change_mode", "access", "version", "data_enum"}},
-        {VehicleProperty::INFO_EXTERIOR_DIMENSIONS, {"change_mode", "access", "version", "unit"}},
-        {VehicleProperty::INFO_MULTI_EV_PORT_LOCATIONS, {"change_mode", "access", "version", "data_enum"}},
-        {VehicleProperty::INFO_MODEL_TRIM, {"change_mode", "access", "version"}},
-        {VehicleProperty::INFO_VEHICLE_SIZE_CLASS, {"change_mode", "access", "version", "data_enum"}},
-        {VehicleProperty::PERF_ODOMETER, {"change_mode", "access", "version", "unit"}},
-        {VehicleProperty::PERF_VEHICLE_SPEED, {"change_mode", "access", "version", "unit"}},
-        {VehicleProperty::PERF_VEHICLE_SPEED_DISPLAY, {"change_mode", "access", "version", "unit"}},
-        {VehicleProperty::PERF_STEERING_ANGLE, {"change_mode", "access", "version", "unit"}},
-        {VehicleProperty::PERF_REAR_STEERING_ANGLE, {"change_mode", "access", "version", "unit"}},
-        {VehicleProperty::INSTANTANEOUS_FUEL_ECONOMY, {"change_mode", "access", "version"}},
-        {VehicleProperty::INSTANTANEOUS_EV_EFFICIENCY, {"change_mode", "access", "version"}},
-        {VehicleProperty::ENGINE_COOLANT_TEMP, {"change_mode", "access", "version", "unit"}},
-        {VehicleProperty::ENGINE_OIL_LEVEL, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::ENGINE_OIL_TEMP, {"change_mode", "access", "version", "unit"}},
-        {VehicleProperty::ENGINE_RPM, {"change_mode", "access", "version", "unit"}},
-        {VehicleProperty::WHEEL_TICK, {"change_mode", "access", "version"}},
-        {VehicleProperty::FUEL_LEVEL, {"change_mode", "access", "version", "unit"}},
-        {VehicleProperty::FUEL_DOOR_OPEN, {"change_mode", "access", "version"}},
-        {VehicleProperty::EV_BATTERY_LEVEL, {"change_mode", "access", "version", "unit"}},
-        {VehicleProperty::EV_CURRENT_BATTERY_CAPACITY, {"change_mode", "access", "version", "unit"}},
-        {VehicleProperty::EV_CHARGE_PORT_OPEN, {"change_mode", "access", "version"}},
-        {VehicleProperty::EV_CHARGE_PORT_CONNECTED, {"change_mode", "access", "version"}},
-        {VehicleProperty::EV_BATTERY_INSTANTANEOUS_CHARGE_RATE, {"change_mode", "access", "version", "unit"}},
-        {VehicleProperty::RANGE_REMAINING, {"change_mode", "access", "version", "unit"}},
-        {VehicleProperty::EV_BATTERY_AVERAGE_TEMPERATURE, {"change_mode", "access", "version", "unit"}},
-        {VehicleProperty::TIRE_PRESSURE, {"change_mode", "unit", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::CRITICALLY_LOW_TIRE_PRESSURE, {"change_mode", "access", "version", "unit"}},
-        {VehicleProperty::ACCELERATOR_PEDAL_COMPRESSION_PERCENTAGE, {"change_mode", "access", "version"}},
-        {VehicleProperty::BRAKE_PEDAL_COMPRESSION_PERCENTAGE, {"change_mode", "access", "version"}},
-        {VehicleProperty::BRAKE_PAD_WEAR_PERCENTAGE, {"change_mode", "access", "version"}},
-        {VehicleProperty::BRAKE_FLUID_LEVEL_LOW, {"change_mode", "access", "version"}},
-        {VehicleProperty::VEHICLE_PASSIVE_SUSPENSION_HEIGHT, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::ENGINE_IDLE_AUTO_STOP_ENABLED, {"change_mode", "access", "version"}},
-        {VehicleProperty::IMPACT_DETECTED, {"change_mode", "access", "require_supported_values_list", "version", "data_enum", "data_enum_bit_flags"}},
-        {VehicleProperty::VEHICLE_HORN_ENGAGED, {"change_mode", "access", "version"}},
-        {VehicleProperty::GEAR_SELECTION, {"change_mode", "legacy_supported_values_in_config", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::CURRENT_GEAR, {"change_mode", "legacy_supported_values_in_config", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::PARKING_BRAKE_ON, {"change_mode", "access", "version"}},
-        {VehicleProperty::PARKING_BRAKE_AUTO_APPLY, {"change_mode", "access", "version"}},
-        {VehicleProperty::EV_BRAKE_REGENERATION_LEVEL, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::FUEL_LEVEL_LOW, {"change_mode", "access", "version"}},
-        {VehicleProperty::NIGHT_MODE, {"change_mode", "access", "version"}},
-        {VehicleProperty::TURN_SIGNAL_STATE, {"change_mode", "access", "version", "data_enum"}},
-        {VehicleProperty::IGNITION_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::ABS_ACTIVE, {"change_mode", "access", "version"}},
-        {VehicleProperty::TRACTION_CONTROL_ACTIVE, {"change_mode", "access", "version"}},
-        {VehicleProperty::EV_STOPPING_MODE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::ELECTRONIC_STABILITY_CONTROL_ENABLED, {"change_mode", "access", "version"}},
-        {VehicleProperty::ELECTRONIC_STABILITY_CONTROL_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::TURN_SIGNAL_LIGHT_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum", "data_enum_bit_flags"}},
-        {VehicleProperty::TURN_SIGNAL_SWITCH, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::HVAC_FAN_SPEED, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::HVAC_FAN_DIRECTION, {"change_mode", "access", "version", "data_enum"}},
-        {VehicleProperty::HVAC_TEMPERATURE_CURRENT, {"change_mode", "access", "version", "unit"}},
-        {VehicleProperty::HVAC_TEMPERATURE_SET, {"change_mode", "unit", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::HVAC_DEFROSTER, {"change_mode", "access", "version"}},
-        {VehicleProperty::HVAC_AC_ON, {"change_mode", "access", "version"}},
-        {VehicleProperty::HVAC_MAX_AC_ON, {"change_mode", "access", "version"}},
-        {VehicleProperty::HVAC_MAX_DEFROST_ON, {"change_mode", "access", "version"}},
-        {VehicleProperty::HVAC_RECIRC_ON, {"change_mode", "access", "version"}},
-        {VehicleProperty::HVAC_DUAL_ON, {"change_mode", "access", "version"}},
-        {VehicleProperty::HVAC_AUTO_ON, {"change_mode", "access", "version"}},
-        {VehicleProperty::HVAC_SEAT_TEMPERATURE, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::HVAC_SIDE_MIRROR_HEAT, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::HVAC_STEERING_WHEEL_HEAT, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::HVAC_TEMPERATURE_DISPLAY_UNITS, {"change_mode", "legacy_supported_values_in_config", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::HVAC_ACTUAL_FAN_SPEED_RPM, {"change_mode", "access", "version"}},
-        {VehicleProperty::HVAC_POWER_ON, {"change_mode", "access", "version"}},
-        {VehicleProperty::HVAC_FAN_DIRECTION_AVAILABLE, {"change_mode", "access", "version", "data_enum", "data_enum_bit_flags"}},
-        {VehicleProperty::HVAC_AUTO_RECIRC_ON, {"change_mode", "access", "version"}},
-        {VehicleProperty::HVAC_SEAT_VENTILATION, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::HVAC_ELECTRIC_DEFROSTER_ON, {"change_mode", "access", "version"}},
-        {VehicleProperty::HVAC_TEMPERATURE_VALUE_SUGGESTION, {"change_mode", "access", "version"}},
-        {VehicleProperty::DISTANCE_DISPLAY_UNITS, {"change_mode", "legacy_supported_values_in_config", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::FUEL_VOLUME_DISPLAY_UNITS, {"change_mode", "legacy_supported_values_in_config", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::TIRE_PRESSURE_DISPLAY_UNITS, {"change_mode", "legacy_supported_values_in_config", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::EV_BATTERY_DISPLAY_UNITS, {"change_mode", "legacy_supported_values_in_config", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::FUEL_CONSUMPTION_UNITS_DISTANCE_OVER_VOLUME, {"change_mode", "access", "version"}},
-        {VehicleProperty::VEHICLE_SPEED_DISPLAY_UNITS, {"change_mode", "legacy_supported_values_in_config", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::EXTERNAL_CAR_TIME, {"change_mode", "access", "version", "unit"}},
-        {VehicleProperty::ANDROID_EPOCH_TIME, {"change_mode", "access", "version", "unit"}},
-        {VehicleProperty::STORAGE_ENCRYPTION_BINDING_SEED, {"change_mode", "access", "version"}},
-        {VehicleProperty::ENV_OUTSIDE_TEMPERATURE, {"change_mode", "access", "version", "unit"}},
-        {VehicleProperty::AP_POWER_STATE_REQ, {"change_mode", "access", "version"}},
-        {VehicleProperty::AP_POWER_STATE_REPORT, {"change_mode", "access", "version"}},
-        {VehicleProperty::AP_POWER_BOOTUP_REASON, {"change_mode", "access", "version"}},
-        {VehicleProperty::DISPLAY_BRIGHTNESS, {"change_mode", "access", "version"}},
-        {VehicleProperty::PER_DISPLAY_BRIGHTNESS, {"change_mode", "access", "version"}},
-        {VehicleProperty::VALET_MODE_ENABLED, {"change_mode", "access", "version"}},
-        {VehicleProperty::HEAD_UP_DISPLAY_ENABLED, {"change_mode", "access", "version"}},
-        {VehicleProperty::HW_KEY_INPUT, {"change_mode", "access", "version"}},
-        {VehicleProperty::HW_KEY_INPUT_V2, {"change_mode", "access", "version"}},
-        {VehicleProperty::HW_MOTION_INPUT, {"change_mode", "access", "version"}},
-        {VehicleProperty::HW_ROTARY_INPUT, {"change_mode", "access", "version", "data_enum"}},
-        {VehicleProperty::HW_CUSTOM_INPUT, {"change_mode", "access", "version", "data_enum"}},
-        {VehicleProperty::DOOR_POS, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::DOOR_MOVE, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::DOOR_LOCK, {"change_mode", "access", "version"}},
-        {VehicleProperty::DOOR_CHILD_LOCK_ENABLED, {"change_mode", "access", "version"}},
-        {VehicleProperty::MIRROR_Z_POS, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::MIRROR_Z_MOVE, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::MIRROR_Y_POS, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::MIRROR_Y_MOVE, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::MIRROR_LOCK, {"change_mode", "access", "version"}},
-        {VehicleProperty::MIRROR_FOLD, {"change_mode", "access", "version"}},
-        {VehicleProperty::MIRROR_AUTO_FOLD_ENABLED, {"change_mode", "access", "version"}},
-        {VehicleProperty::MIRROR_AUTO_TILT_ENABLED, {"change_mode", "access", "version"}},
-        {VehicleProperty::SEAT_MEMORY_SELECT, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::SEAT_MEMORY_SET, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::SEAT_BELT_BUCKLED, {"change_mode", "access", "version"}},
-        {VehicleProperty::SEAT_BELT_HEIGHT_POS, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::SEAT_BELT_HEIGHT_MOVE, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::SEAT_FORE_AFT_POS, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::SEAT_FORE_AFT_MOVE, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::SEAT_BACKREST_ANGLE_1_POS, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::SEAT_BACKREST_ANGLE_1_MOVE, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::SEAT_BACKREST_ANGLE_2_POS, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::SEAT_BACKREST_ANGLE_2_MOVE, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::SEAT_HEIGHT_POS, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::SEAT_HEIGHT_MOVE, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::SEAT_DEPTH_POS, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::SEAT_DEPTH_MOVE, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::SEAT_TILT_POS, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::SEAT_TILT_MOVE, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::SEAT_LUMBAR_FORE_AFT_POS, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::SEAT_LUMBAR_FORE_AFT_MOVE, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::SEAT_LUMBAR_SIDE_SUPPORT_POS, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::SEAT_LUMBAR_SIDE_SUPPORT_MOVE, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::SEAT_HEADREST_HEIGHT_POS, {"change_mode", "access", "version"}},
-        {VehicleProperty::SEAT_HEADREST_HEIGHT_POS_V2, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::SEAT_HEADREST_HEIGHT_MOVE, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::SEAT_HEADREST_ANGLE_POS, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::SEAT_HEADREST_ANGLE_MOVE, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::SEAT_HEADREST_FORE_AFT_POS, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::SEAT_HEADREST_FORE_AFT_MOVE, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::SEAT_FOOTWELL_LIGHTS_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::SEAT_FOOTWELL_LIGHTS_SWITCH, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::SEAT_EASY_ACCESS_ENABLED, {"change_mode", "access", "version"}},
-        {VehicleProperty::SEAT_AIRBAG_ENABLED, {"change_mode", "access", "version"}},
-        {VehicleProperty::SEAT_AIRBAGS_DEPLOYED, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::SEAT_CUSHION_SIDE_SUPPORT_POS, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::SEAT_CUSHION_SIDE_SUPPORT_MOVE, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::SEAT_LUMBAR_VERTICAL_POS, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::SEAT_LUMBAR_VERTICAL_MOVE, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::SEAT_WALK_IN_POS, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::SEAT_BELT_PRETENSIONER_DEPLOYED, {"change_mode", "access", "version"}},
-        {VehicleProperty::SEAT_OCCUPANCY, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::WINDOW_POS, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::WINDOW_MOVE, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::WINDOW_LOCK, {"change_mode", "access", "version"}},
-        {VehicleProperty::WINDSHIELD_WIPERS_PERIOD, {"change_mode", "unit", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::WINDSHIELD_WIPERS_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::WINDSHIELD_WIPERS_SWITCH, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::STEERING_WHEEL_DEPTH_POS, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::STEERING_WHEEL_DEPTH_MOVE, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::STEERING_WHEEL_HEIGHT_POS, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::STEERING_WHEEL_HEIGHT_MOVE, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::STEERING_WHEEL_THEFT_LOCK_ENABLED, {"change_mode", "access", "version"}},
-        {VehicleProperty::STEERING_WHEEL_LOCKED, {"change_mode", "access", "version"}},
-        {VehicleProperty::STEERING_WHEEL_EASY_ACCESS_ENABLED, {"change_mode", "access", "version"}},
-        {VehicleProperty::GLOVE_BOX_DOOR_POS, {"change_mode", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::GLOVE_BOX_LOCKED, {"change_mode", "access", "version"}},
-        {VehicleProperty::VEHICLE_MAP_SERVICE, {"change_mode", "access", "version"}},
-        {VehicleProperty::LOCATION_CHARACTERIZATION, {"change_mode", "access", "version"}},
-        {VehicleProperty::ULTRASONICS_SENSOR_POSITION, {"change_mode", "access", "version"}},
-        {VehicleProperty::ULTRASONICS_SENSOR_ORIENTATION, {"change_mode", "access", "version"}},
-        {VehicleProperty::ULTRASONICS_SENSOR_FIELD_OF_VIEW, {"change_mode", "access", "version"}},
-        {VehicleProperty::ULTRASONICS_SENSOR_DETECTION_RANGE, {"change_mode", "access", "version"}},
-        {VehicleProperty::ULTRASONICS_SENSOR_SUPPORTED_RANGES, {"change_mode", "access", "version"}},
-        {VehicleProperty::ULTRASONICS_SENSOR_MEASURED_DISTANCE, {"change_mode", "access", "version"}},
-        {VehicleProperty::OBD2_LIVE_FRAME, {"change_mode", "access", "version"}},
-        {VehicleProperty::OBD2_FREEZE_FRAME, {"change_mode", "access", "version"}},
-        {VehicleProperty::OBD2_FREEZE_FRAME_INFO, {"change_mode", "access", "version"}},
-        {VehicleProperty::OBD2_FREEZE_FRAME_CLEAR, {"change_mode", "access", "version"}},
-        {VehicleProperty::HEADLIGHTS_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::HIGH_BEAM_LIGHTS_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::FOG_LIGHTS_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::HAZARD_LIGHTS_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::HEADLIGHTS_SWITCH, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::HIGH_BEAM_LIGHTS_SWITCH, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::FOG_LIGHTS_SWITCH, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::HAZARD_LIGHTS_SWITCH, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::CABIN_LIGHTS_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::CABIN_LIGHTS_SWITCH, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::READING_LIGHTS_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::READING_LIGHTS_SWITCH, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::STEERING_WHEEL_LIGHTS_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::STEERING_WHEEL_LIGHTS_SWITCH, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::SUPPORT_CUSTOMIZE_VENDOR_PERMISSION, {"change_mode", "access", "version"}},
-        {VehicleProperty::DISABLED_OPTIONAL_FEATURES, {"change_mode", "access", "version"}},
-        {VehicleProperty::INITIAL_USER_INFO, {"change_mode", "access", "version"}},
-        {VehicleProperty::SWITCH_USER, {"change_mode", "access", "version"}},
-        {VehicleProperty::CREATE_USER, {"change_mode", "access", "version"}},
-        {VehicleProperty::REMOVE_USER, {"change_mode", "access", "version"}},
-        {VehicleProperty::USER_IDENTIFICATION_ASSOCIATION, {"change_mode", "access", "version"}},
-        {VehicleProperty::EVS_SERVICE_REQUEST, {"change_mode", "access", "version"}},
-        {VehicleProperty::POWER_POLICY_REQ, {"change_mode", "access", "version"}},
-        {VehicleProperty::POWER_POLICY_GROUP_REQ, {"change_mode", "access", "version"}},
-        {VehicleProperty::CURRENT_POWER_POLICY, {"change_mode", "access", "version"}},
-        {VehicleProperty::WATCHDOG_ALIVE, {"change_mode", "access", "version"}},
-        {VehicleProperty::WATCHDOG_TERMINATED_PROCESS, {"change_mode", "access", "version"}},
-        {VehicleProperty::VHAL_HEARTBEAT, {"change_mode", "access", "version"}},
-        {VehicleProperty::CLUSTER_SWITCH_UI, {"change_mode", "access", "version"}},
-        {VehicleProperty::CLUSTER_DISPLAY_STATE, {"change_mode", "access", "version"}},
-        {VehicleProperty::CLUSTER_REPORT_STATE, {"change_mode", "access", "version"}},
-        {VehicleProperty::CLUSTER_REQUEST_DISPLAY, {"change_mode", "access", "version"}},
-        {VehicleProperty::CLUSTER_NAVIGATION_STATE, {"change_mode", "access", "version"}},
-        {VehicleProperty::ELECTRONIC_TOLL_COLLECTION_CARD_TYPE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::ELECTRONIC_TOLL_COLLECTION_CARD_STATUS, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::FRONT_FOG_LIGHTS_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::FRONT_FOG_LIGHTS_SWITCH, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::REAR_FOG_LIGHTS_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::REAR_FOG_LIGHTS_SWITCH, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::EV_CHARGE_CURRENT_DRAW_LIMIT, {"change_mode", "access", "version", "unit"}},
-        {VehicleProperty::EV_CHARGE_PERCENT_LIMIT, {"change_mode", "legacy_supported_values_in_config", "access", "require_supported_values_list", "version"}},
-        {VehicleProperty::EV_CHARGE_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::EV_CHARGE_SWITCH, {"change_mode", "access", "version"}},
-        {VehicleProperty::EV_CHARGE_TIME_REMAINING, {"change_mode", "access", "version", "unit"}},
-        {VehicleProperty::EV_REGENERATIVE_BRAKING_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::TRAILER_PRESENT, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::VEHICLE_CURB_WEIGHT, {"change_mode", "access", "version"}},
-        {VehicleProperty::GENERAL_SAFETY_REGULATION_COMPLIANCE_REQUIREMENT, {"change_mode", "access", "version", "data_enum"}},
-        {VehicleProperty::SUPPORTED_PROPERTY_IDS, {"change_mode", "access", "version"}},
-        {VehicleProperty::SHUTDOWN_REQUEST, {"change_mode", "access", "version", "data_enum"}},
-        {VehicleProperty::VEHICLE_IN_USE, {"change_mode", "access", "version"}},
-        {VehicleProperty::CLUSTER_HEARTBEAT, {"change_mode", "access", "version"}},
-        {VehicleProperty::VEHICLE_DRIVING_AUTOMATION_CURRENT_LEVEL, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::VEHICLE_DRIVING_AUTOMATION_TARGET_LEVEL, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::CAMERA_SERVICE_CURRENT_STATE, {"change_mode", "access", "version", "data_enum"}},
-        {VehicleProperty::PER_DISPLAY_MAX_BRIGHTNESS, {"change_mode", "access", "version"}},
-        {VehicleProperty::AUTOMATIC_EMERGENCY_BRAKING_ENABLED, {"change_mode", "access", "version"}},
-        {VehicleProperty::AUTOMATIC_EMERGENCY_BRAKING_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::FORWARD_COLLISION_WARNING_ENABLED, {"change_mode", "access", "version"}},
-        {VehicleProperty::FORWARD_COLLISION_WARNING_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::BLIND_SPOT_WARNING_ENABLED, {"change_mode", "access", "version"}},
-        {VehicleProperty::BLIND_SPOT_WARNING_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::LANE_DEPARTURE_WARNING_ENABLED, {"change_mode", "access", "version"}},
-        {VehicleProperty::LANE_DEPARTURE_WARNING_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::LANE_KEEP_ASSIST_ENABLED, {"change_mode", "access", "version"}},
-        {VehicleProperty::LANE_KEEP_ASSIST_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::LANE_CENTERING_ASSIST_ENABLED, {"change_mode", "access", "version"}},
-        {VehicleProperty::LANE_CENTERING_ASSIST_COMMAND, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::LANE_CENTERING_ASSIST_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::EMERGENCY_LANE_KEEP_ASSIST_ENABLED, {"change_mode", "access", "version"}},
-        {VehicleProperty::EMERGENCY_LANE_KEEP_ASSIST_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::CRUISE_CONTROL_ENABLED, {"change_mode", "access", "version"}},
-        {VehicleProperty::CRUISE_CONTROL_TYPE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::CRUISE_CONTROL_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::CRUISE_CONTROL_COMMAND, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::CRUISE_CONTROL_TARGET_SPEED, {"change_mode", "unit", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::ADAPTIVE_CRUISE_CONTROL_TARGET_TIME_GAP, {"change_mode", "unit", "legacy_supported_values_in_config", "access", "require_supported_values_list", "version"}},
-        {VehicleProperty::ADAPTIVE_CRUISE_CONTROL_LEAD_VEHICLE_MEASURED_DISTANCE, {"change_mode", "unit", "require_min_max_supported_value", "access", "version"}},
-        {VehicleProperty::HANDS_ON_DETECTION_ENABLED, {"change_mode", "access", "version"}},
-        {VehicleProperty::HANDS_ON_DETECTION_DRIVER_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::HANDS_ON_DETECTION_WARNING, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::DRIVER_DROWSINESS_ATTENTION_SYSTEM_ENABLED, {"change_mode", "access", "version"}},
-        {VehicleProperty::DRIVER_DROWSINESS_ATTENTION_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::DRIVER_DROWSINESS_ATTENTION_WARNING_ENABLED, {"change_mode", "access", "version"}},
-        {VehicleProperty::DRIVER_DROWSINESS_ATTENTION_WARNING, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::DRIVER_DISTRACTION_SYSTEM_ENABLED, {"change_mode", "access", "version"}},
-        {VehicleProperty::DRIVER_DISTRACTION_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::DRIVER_DISTRACTION_WARNING_ENABLED, {"change_mode", "access", "version"}},
-        {VehicleProperty::DRIVER_DISTRACTION_WARNING, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::LOW_SPEED_COLLISION_WARNING_ENABLED, {"change_mode", "access", "version"}},
-        {VehicleProperty::LOW_SPEED_COLLISION_WARNING_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::CROSS_TRAFFIC_MONITORING_ENABLED, {"change_mode", "access", "version"}},
-        {VehicleProperty::CROSS_TRAFFIC_MONITORING_WARNING_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
-        {VehicleProperty::LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_ENABLED, {"change_mode", "access", "version"}},
-        {VehicleProperty::LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_STATE, {"change_mode", "access", "require_supported_values_list", "version", "data_enum"}},
+        {VehicleProperty::INFO_VIN, {"access", "change_mode", "version"}},
+        {VehicleProperty::INFO_MAKE, {"access", "change_mode", "version"}},
+        {VehicleProperty::INFO_MODEL, {"access", "change_mode", "version"}},
+        {VehicleProperty::INFO_MODEL_YEAR, {"access", "change_mode", "unit", "version"}},
+        {VehicleProperty::INFO_FUEL_CAPACITY, {"access", "change_mode", "unit", "version"}},
+        {VehicleProperty::INFO_FUEL_TYPE, {"access", "change_mode", "data_enum", "version"}},
+        {VehicleProperty::INFO_EV_BATTERY_CAPACITY, {"access", "change_mode", "unit", "version"}},
+        {VehicleProperty::INFO_EV_CONNECTOR_TYPE, {"access", "change_mode", "data_enum", "version"}},
+        {VehicleProperty::INFO_FUEL_DOOR_LOCATION, {"access", "change_mode", "data_enum", "version"}},
+        {VehicleProperty::INFO_EV_PORT_LOCATION, {"access", "change_mode", "data_enum", "version"}},
+        {VehicleProperty::INFO_DRIVER_SEAT, {"access", "change_mode", "data_enum", "version"}},
+        {VehicleProperty::INFO_EXTERIOR_DIMENSIONS, {"access", "change_mode", "unit", "version"}},
+        {VehicleProperty::INFO_MULTI_EV_PORT_LOCATIONS, {"access", "change_mode", "data_enum", "version"}},
+        {VehicleProperty::INFO_MODEL_TRIM, {"access", "change_mode", "version"}},
+        {VehicleProperty::INFO_VEHICLE_SIZE_CLASS, {"access", "change_mode", "data_enum", "version"}},
+        {VehicleProperty::PERF_ODOMETER, {"access", "change_mode", "unit", "version"}},
+        {VehicleProperty::PERF_VEHICLE_SPEED, {"access", "change_mode", "unit", "version"}},
+        {VehicleProperty::PERF_VEHICLE_SPEED_DISPLAY, {"access", "change_mode", "unit", "version"}},
+        {VehicleProperty::PERF_STEERING_ANGLE, {"access", "change_mode", "unit", "version"}},
+        {VehicleProperty::PERF_REAR_STEERING_ANGLE, {"access", "change_mode", "unit", "version"}},
+        {VehicleProperty::INSTANTANEOUS_FUEL_ECONOMY, {"access", "change_mode", "version"}},
+        {VehicleProperty::INSTANTANEOUS_EV_EFFICIENCY, {"access", "change_mode", "version"}},
+        {VehicleProperty::ENGINE_COOLANT_TEMP, {"access", "change_mode", "unit", "version"}},
+        {VehicleProperty::ENGINE_OIL_LEVEL, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::ENGINE_OIL_TEMP, {"access", "change_mode", "unit", "version"}},
+        {VehicleProperty::ENGINE_RPM, {"access", "change_mode", "unit", "version"}},
+        {VehicleProperty::WHEEL_TICK, {"access", "change_mode", "version"}},
+        {VehicleProperty::FUEL_LEVEL, {"access", "change_mode", "unit", "version"}},
+        {VehicleProperty::FUEL_DOOR_OPEN, {"access", "change_mode", "version"}},
+        {VehicleProperty::EV_BATTERY_LEVEL, {"access", "change_mode", "unit", "version"}},
+        {VehicleProperty::EV_CURRENT_BATTERY_CAPACITY, {"access", "change_mode", "unit", "version"}},
+        {VehicleProperty::EV_CHARGE_PORT_OPEN, {"access", "change_mode", "version"}},
+        {VehicleProperty::EV_CHARGE_PORT_CONNECTED, {"access", "change_mode", "version"}},
+        {VehicleProperty::EV_BATTERY_INSTANTANEOUS_CHARGE_RATE, {"access", "change_mode", "unit", "version"}},
+        {VehicleProperty::RANGE_REMAINING, {"access", "change_mode", "unit", "version"}},
+        {VehicleProperty::EV_BATTERY_AVERAGE_TEMPERATURE, {"access", "change_mode", "unit", "version"}},
+        {VehicleProperty::TIRE_PRESSURE, {"access", "change_mode", "require_min_max_supported_value", "unit", "version"}},
+        {VehicleProperty::CRITICALLY_LOW_TIRE_PRESSURE, {"access", "change_mode", "unit", "version"}},
+        {VehicleProperty::ACCELERATOR_PEDAL_COMPRESSION_PERCENTAGE, {"access", "change_mode", "version"}},
+        {VehicleProperty::BRAKE_PEDAL_COMPRESSION_PERCENTAGE, {"access", "change_mode", "version"}},
+        {VehicleProperty::BRAKE_PAD_WEAR_PERCENTAGE, {"access", "change_mode", "version"}},
+        {VehicleProperty::BRAKE_FLUID_LEVEL_LOW, {"access", "change_mode", "version"}},
+        {VehicleProperty::VEHICLE_PASSIVE_SUSPENSION_HEIGHT, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::ENGINE_IDLE_AUTO_STOP_ENABLED, {"access", "change_mode", "version"}},
+        {VehicleProperty::IMPACT_DETECTED, {"access", "change_mode", "data_enum", "data_enum_bit_flags", "require_supported_values_list", "version"}},
+        {VehicleProperty::VEHICLE_HORN_ENGAGED, {"access", "change_mode", "version"}},
+        {VehicleProperty::GEAR_SELECTION, {"access", "change_mode", "data_enum", "legacy_supported_values_in_config", "require_supported_values_list", "version"}},
+        {VehicleProperty::CURRENT_GEAR, {"access", "change_mode", "data_enum", "legacy_supported_values_in_config", "require_supported_values_list", "version"}},
+        {VehicleProperty::PARKING_BRAKE_ON, {"access", "change_mode", "version"}},
+        {VehicleProperty::PARKING_BRAKE_AUTO_APPLY, {"access", "change_mode", "version"}},
+        {VehicleProperty::EV_BRAKE_REGENERATION_LEVEL, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::FUEL_LEVEL_LOW, {"access", "change_mode", "version"}},
+        {VehicleProperty::NIGHT_MODE, {"access", "change_mode", "version"}},
+        {VehicleProperty::TURN_SIGNAL_STATE, {"access", "change_mode", "data_enum", "version"}},
+        {VehicleProperty::IGNITION_STATE, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::ABS_ACTIVE, {"access", "change_mode", "version"}},
+        {VehicleProperty::TRACTION_CONTROL_ACTIVE, {"access", "change_mode", "version"}},
+        {VehicleProperty::EV_STOPPING_MODE, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::ELECTRONIC_STABILITY_CONTROL_ENABLED, {"access", "change_mode", "version"}},
+        {VehicleProperty::ELECTRONIC_STABILITY_CONTROL_STATE, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::TURN_SIGNAL_LIGHT_STATE, {"access", "change_mode", "data_enum", "data_enum_bit_flags", "require_supported_values_list", "version"}},
+        {VehicleProperty::TURN_SIGNAL_SWITCH, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::HVAC_FAN_SPEED, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::HVAC_FAN_DIRECTION, {"access", "change_mode", "data_enum", "version"}},
+        {VehicleProperty::HVAC_TEMPERATURE_CURRENT, {"access", "change_mode", "unit", "version"}},
+        {VehicleProperty::HVAC_TEMPERATURE_SET, {"access", "change_mode", "require_min_max_supported_value", "unit", "version"}},
+        {VehicleProperty::HVAC_DEFROSTER, {"access", "change_mode", "version"}},
+        {VehicleProperty::HVAC_AC_ON, {"access", "change_mode", "version"}},
+        {VehicleProperty::HVAC_MAX_AC_ON, {"access", "change_mode", "version"}},
+        {VehicleProperty::HVAC_MAX_DEFROST_ON, {"access", "change_mode", "version"}},
+        {VehicleProperty::HVAC_RECIRC_ON, {"access", "change_mode", "version"}},
+        {VehicleProperty::HVAC_DUAL_ON, {"access", "change_mode", "version"}},
+        {VehicleProperty::HVAC_AUTO_ON, {"access", "change_mode", "version"}},
+        {VehicleProperty::HVAC_SEAT_TEMPERATURE, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::HVAC_SIDE_MIRROR_HEAT, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::HVAC_STEERING_WHEEL_HEAT, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::HVAC_TEMPERATURE_DISPLAY_UNITS, {"access", "change_mode", "data_enum", "legacy_supported_values_in_config", "require_supported_values_list", "version"}},
+        {VehicleProperty::HVAC_ACTUAL_FAN_SPEED_RPM, {"access", "change_mode", "version"}},
+        {VehicleProperty::HVAC_POWER_ON, {"access", "change_mode", "version"}},
+        {VehicleProperty::HVAC_FAN_DIRECTION_AVAILABLE, {"access", "change_mode", "data_enum", "data_enum_bit_flags", "version"}},
+        {VehicleProperty::HVAC_AUTO_RECIRC_ON, {"access", "change_mode", "version"}},
+        {VehicleProperty::HVAC_SEAT_VENTILATION, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::HVAC_ELECTRIC_DEFROSTER_ON, {"access", "change_mode", "version"}},
+        {VehicleProperty::HVAC_TEMPERATURE_VALUE_SUGGESTION, {"access", "change_mode", "version"}},
+        {VehicleProperty::DISTANCE_DISPLAY_UNITS, {"access", "change_mode", "data_enum", "legacy_supported_values_in_config", "require_supported_values_list", "version"}},
+        {VehicleProperty::FUEL_VOLUME_DISPLAY_UNITS, {"access", "change_mode", "data_enum", "legacy_supported_values_in_config", "require_supported_values_list", "version"}},
+        {VehicleProperty::TIRE_PRESSURE_DISPLAY_UNITS, {"access", "change_mode", "data_enum", "legacy_supported_values_in_config", "require_supported_values_list", "version"}},
+        {VehicleProperty::EV_BATTERY_DISPLAY_UNITS, {"access", "change_mode", "data_enum", "legacy_supported_values_in_config", "require_supported_values_list", "version"}},
+        {VehicleProperty::FUEL_CONSUMPTION_UNITS_DISTANCE_OVER_VOLUME, {"access", "change_mode", "version"}},
+        {VehicleProperty::VEHICLE_SPEED_DISPLAY_UNITS, {"access", "change_mode", "data_enum", "legacy_supported_values_in_config", "require_supported_values_list", "version"}},
+        {VehicleProperty::EXTERNAL_CAR_TIME, {"access", "change_mode", "unit", "version"}},
+        {VehicleProperty::ANDROID_EPOCH_TIME, {"access", "change_mode", "unit", "version"}},
+        {VehicleProperty::STORAGE_ENCRYPTION_BINDING_SEED, {"access", "change_mode", "version"}},
+        {VehicleProperty::ENV_OUTSIDE_TEMPERATURE, {"access", "change_mode", "unit", "version"}},
+        {VehicleProperty::AP_POWER_STATE_REQ, {"access", "change_mode", "version"}},
+        {VehicleProperty::AP_POWER_STATE_REPORT, {"access", "change_mode", "version"}},
+        {VehicleProperty::AP_POWER_BOOTUP_REASON, {"access", "change_mode", "version"}},
+        {VehicleProperty::DISPLAY_BRIGHTNESS, {"access", "change_mode", "version"}},
+        {VehicleProperty::PER_DISPLAY_BRIGHTNESS, {"access", "change_mode", "version"}},
+        {VehicleProperty::VALET_MODE_ENABLED, {"access", "change_mode", "version"}},
+        {VehicleProperty::HEAD_UP_DISPLAY_ENABLED, {"access", "change_mode", "version"}},
+        {VehicleProperty::HW_KEY_INPUT, {"access", "change_mode", "version"}},
+        {VehicleProperty::HW_KEY_INPUT_V2, {"access", "change_mode", "version"}},
+        {VehicleProperty::HW_MOTION_INPUT, {"access", "change_mode", "version"}},
+        {VehicleProperty::HW_ROTARY_INPUT, {"access", "change_mode", "data_enum", "version"}},
+        {VehicleProperty::HW_CUSTOM_INPUT, {"access", "change_mode", "data_enum", "version"}},
+        {VehicleProperty::DOOR_POS, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::DOOR_MOVE, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::DOOR_LOCK, {"access", "change_mode", "version"}},
+        {VehicleProperty::DOOR_CHILD_LOCK_ENABLED, {"access", "change_mode", "version"}},
+        {VehicleProperty::MIRROR_Z_POS, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::MIRROR_Z_MOVE, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::MIRROR_Y_POS, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::MIRROR_Y_MOVE, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::MIRROR_LOCK, {"access", "change_mode", "version"}},
+        {VehicleProperty::MIRROR_FOLD, {"access", "change_mode", "version"}},
+        {VehicleProperty::MIRROR_AUTO_FOLD_ENABLED, {"access", "change_mode", "version"}},
+        {VehicleProperty::MIRROR_AUTO_TILT_ENABLED, {"access", "change_mode", "version"}},
+        {VehicleProperty::SEAT_MEMORY_SELECT, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::SEAT_MEMORY_SET, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::SEAT_BELT_BUCKLED, {"access", "change_mode", "version"}},
+        {VehicleProperty::SEAT_BELT_HEIGHT_POS, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::SEAT_BELT_HEIGHT_MOVE, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::SEAT_FORE_AFT_POS, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::SEAT_FORE_AFT_MOVE, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::SEAT_BACKREST_ANGLE_1_POS, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::SEAT_BACKREST_ANGLE_1_MOVE, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::SEAT_BACKREST_ANGLE_2_POS, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::SEAT_BACKREST_ANGLE_2_MOVE, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::SEAT_HEIGHT_POS, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::SEAT_HEIGHT_MOVE, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::SEAT_DEPTH_POS, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::SEAT_DEPTH_MOVE, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::SEAT_TILT_POS, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::SEAT_TILT_MOVE, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::SEAT_LUMBAR_FORE_AFT_POS, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::SEAT_LUMBAR_FORE_AFT_MOVE, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::SEAT_LUMBAR_SIDE_SUPPORT_POS, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::SEAT_LUMBAR_SIDE_SUPPORT_MOVE, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::SEAT_HEADREST_HEIGHT_POS, {"access", "change_mode", "version"}},
+        {VehicleProperty::SEAT_HEADREST_HEIGHT_POS_V2, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::SEAT_HEADREST_HEIGHT_MOVE, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::SEAT_HEADREST_ANGLE_POS, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::SEAT_HEADREST_ANGLE_MOVE, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::SEAT_HEADREST_FORE_AFT_POS, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::SEAT_HEADREST_FORE_AFT_MOVE, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::SEAT_FOOTWELL_LIGHTS_STATE, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::SEAT_FOOTWELL_LIGHTS_SWITCH, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::SEAT_EASY_ACCESS_ENABLED, {"access", "change_mode", "version"}},
+        {VehicleProperty::SEAT_AIRBAG_ENABLED, {"access", "change_mode", "version"}},
+        {VehicleProperty::SEAT_AIRBAGS_DEPLOYED, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::SEAT_CUSHION_SIDE_SUPPORT_POS, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::SEAT_CUSHION_SIDE_SUPPORT_MOVE, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::SEAT_LUMBAR_VERTICAL_POS, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::SEAT_LUMBAR_VERTICAL_MOVE, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::SEAT_WALK_IN_POS, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::SEAT_BELT_PRETENSIONER_DEPLOYED, {"access", "change_mode", "version"}},
+        {VehicleProperty::SEAT_OCCUPANCY, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::WINDOW_POS, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::WINDOW_MOVE, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::WINDOW_LOCK, {"access", "change_mode", "version"}},
+        {VehicleProperty::WINDSHIELD_WIPERS_PERIOD, {"access", "change_mode", "require_min_max_supported_value", "unit", "version"}},
+        {VehicleProperty::WINDSHIELD_WIPERS_STATE, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::WINDSHIELD_WIPERS_SWITCH, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::STEERING_WHEEL_DEPTH_POS, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::STEERING_WHEEL_DEPTH_MOVE, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::STEERING_WHEEL_HEIGHT_POS, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::STEERING_WHEEL_HEIGHT_MOVE, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::STEERING_WHEEL_THEFT_LOCK_ENABLED, {"access", "change_mode", "version"}},
+        {VehicleProperty::STEERING_WHEEL_LOCKED, {"access", "change_mode", "version"}},
+        {VehicleProperty::STEERING_WHEEL_EASY_ACCESS_ENABLED, {"access", "change_mode", "version"}},
+        {VehicleProperty::GLOVE_BOX_DOOR_POS, {"access", "change_mode", "require_min_max_supported_value", "version"}},
+        {VehicleProperty::GLOVE_BOX_LOCKED, {"access", "change_mode", "version"}},
+        {VehicleProperty::VEHICLE_MAP_SERVICE, {"access", "change_mode", "version"}},
+        {VehicleProperty::LOCATION_CHARACTERIZATION, {"access", "change_mode", "version"}},
+        {VehicleProperty::ULTRASONICS_SENSOR_POSITION, {"access", "change_mode", "version"}},
+        {VehicleProperty::ULTRASONICS_SENSOR_ORIENTATION, {"access", "change_mode", "version"}},
+        {VehicleProperty::ULTRASONICS_SENSOR_FIELD_OF_VIEW, {"access", "change_mode", "version"}},
+        {VehicleProperty::ULTRASONICS_SENSOR_DETECTION_RANGE, {"access", "change_mode", "version"}},
+        {VehicleProperty::ULTRASONICS_SENSOR_SUPPORTED_RANGES, {"access", "change_mode", "version"}},
+        {VehicleProperty::ULTRASONICS_SENSOR_MEASURED_DISTANCE, {"access", "change_mode", "version"}},
+        {VehicleProperty::OBD2_LIVE_FRAME, {"access", "change_mode", "version"}},
+        {VehicleProperty::OBD2_FREEZE_FRAME, {"access", "change_mode", "version"}},
+        {VehicleProperty::OBD2_FREEZE_FRAME_INFO, {"access", "change_mode", "version"}},
+        {VehicleProperty::OBD2_FREEZE_FRAME_CLEAR, {"access", "change_mode", "version"}},
+        {VehicleProperty::HEADLIGHTS_STATE, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::HIGH_BEAM_LIGHTS_STATE, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::FOG_LIGHTS_STATE, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::HAZARD_LIGHTS_STATE, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::HEADLIGHTS_SWITCH, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::HIGH_BEAM_LIGHTS_SWITCH, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::FOG_LIGHTS_SWITCH, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::HAZARD_LIGHTS_SWITCH, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::CABIN_LIGHTS_STATE, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::CABIN_LIGHTS_SWITCH, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::READING_LIGHTS_STATE, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::READING_LIGHTS_SWITCH, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::STEERING_WHEEL_LIGHTS_STATE, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::STEERING_WHEEL_LIGHTS_SWITCH, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::SUPPORT_CUSTOMIZE_VENDOR_PERMISSION, {"access", "change_mode", "version"}},
+        {VehicleProperty::DISABLED_OPTIONAL_FEATURES, {"access", "change_mode", "version"}},
+        {VehicleProperty::INITIAL_USER_INFO, {"access", "change_mode", "version"}},
+        {VehicleProperty::SWITCH_USER, {"access", "change_mode", "version"}},
+        {VehicleProperty::CREATE_USER, {"access", "change_mode", "version"}},
+        {VehicleProperty::REMOVE_USER, {"access", "change_mode", "version"}},
+        {VehicleProperty::USER_IDENTIFICATION_ASSOCIATION, {"access", "change_mode", "version"}},
+        {VehicleProperty::EVS_SERVICE_REQUEST, {"access", "change_mode", "version"}},
+        {VehicleProperty::POWER_POLICY_REQ, {"access", "change_mode", "version"}},
+        {VehicleProperty::POWER_POLICY_GROUP_REQ, {"access", "change_mode", "version"}},
+        {VehicleProperty::CURRENT_POWER_POLICY, {"access", "change_mode", "version"}},
+        {VehicleProperty::WATCHDOG_ALIVE, {"access", "change_mode", "version"}},
+        {VehicleProperty::WATCHDOG_TERMINATED_PROCESS, {"access", "change_mode", "version"}},
+        {VehicleProperty::VHAL_HEARTBEAT, {"access", "change_mode", "version"}},
+        {VehicleProperty::CLUSTER_SWITCH_UI, {"access", "change_mode", "version"}},
+        {VehicleProperty::CLUSTER_DISPLAY_STATE, {"access", "change_mode", "version"}},
+        {VehicleProperty::CLUSTER_REPORT_STATE, {"access", "change_mode", "version"}},
+        {VehicleProperty::CLUSTER_REQUEST_DISPLAY, {"access", "change_mode", "version"}},
+        {VehicleProperty::CLUSTER_NAVIGATION_STATE, {"access", "change_mode", "version"}},
+        {VehicleProperty::ELECTRONIC_TOLL_COLLECTION_CARD_TYPE, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::ELECTRONIC_TOLL_COLLECTION_CARD_STATUS, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::FRONT_FOG_LIGHTS_STATE, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::FRONT_FOG_LIGHTS_SWITCH, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::REAR_FOG_LIGHTS_STATE, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::REAR_FOG_LIGHTS_SWITCH, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::EV_CHARGE_CURRENT_DRAW_LIMIT, {"access", "change_mode", "unit", "version"}},
+        {VehicleProperty::EV_CHARGE_PERCENT_LIMIT, {"access", "change_mode", "legacy_supported_values_in_config", "require_supported_values_list", "version"}},
+        {VehicleProperty::EV_CHARGE_STATE, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::EV_CHARGE_SWITCH, {"access", "change_mode", "version"}},
+        {VehicleProperty::EV_CHARGE_TIME_REMAINING, {"access", "change_mode", "unit", "version"}},
+        {VehicleProperty::EV_REGENERATIVE_BRAKING_STATE, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::TRAILER_PRESENT, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::VEHICLE_CURB_WEIGHT, {"access", "change_mode", "version"}},
+        {VehicleProperty::GENERAL_SAFETY_REGULATION_COMPLIANCE_REQUIREMENT, {"access", "change_mode", "data_enum", "version"}},
+        {VehicleProperty::SUPPORTED_PROPERTY_IDS, {"access", "change_mode", "version"}},
+        {VehicleProperty::SHUTDOWN_REQUEST, {"access", "change_mode", "data_enum", "version"}},
+        {VehicleProperty::VEHICLE_IN_USE, {"access", "change_mode", "version"}},
+        {VehicleProperty::CLUSTER_HEARTBEAT, {"access", "change_mode", "version"}},
+        {VehicleProperty::VEHICLE_DRIVING_AUTOMATION_CURRENT_LEVEL, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::VEHICLE_DRIVING_AUTOMATION_TARGET_LEVEL, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::CAMERA_SERVICE_CURRENT_STATE, {"access", "change_mode", "data_enum", "version"}},
+        {VehicleProperty::PER_DISPLAY_MAX_BRIGHTNESS, {"access", "change_mode", "version"}},
+        {VehicleProperty::AUTOMATIC_EMERGENCY_BRAKING_ENABLED, {"access", "change_mode", "version"}},
+        {VehicleProperty::AUTOMATIC_EMERGENCY_BRAKING_STATE, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::FORWARD_COLLISION_WARNING_ENABLED, {"access", "change_mode", "version"}},
+        {VehicleProperty::FORWARD_COLLISION_WARNING_STATE, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::BLIND_SPOT_WARNING_ENABLED, {"access", "change_mode", "version"}},
+        {VehicleProperty::BLIND_SPOT_WARNING_STATE, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::LANE_DEPARTURE_WARNING_ENABLED, {"access", "change_mode", "version"}},
+        {VehicleProperty::LANE_DEPARTURE_WARNING_STATE, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::LANE_KEEP_ASSIST_ENABLED, {"access", "change_mode", "version"}},
+        {VehicleProperty::LANE_KEEP_ASSIST_STATE, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::LANE_CENTERING_ASSIST_ENABLED, {"access", "change_mode", "version"}},
+        {VehicleProperty::LANE_CENTERING_ASSIST_COMMAND, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::LANE_CENTERING_ASSIST_STATE, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::EMERGENCY_LANE_KEEP_ASSIST_ENABLED, {"access", "change_mode", "version"}},
+        {VehicleProperty::EMERGENCY_LANE_KEEP_ASSIST_STATE, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::CRUISE_CONTROL_ENABLED, {"access", "change_mode", "version"}},
+        {VehicleProperty::CRUISE_CONTROL_TYPE, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::CRUISE_CONTROL_STATE, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::CRUISE_CONTROL_COMMAND, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::CRUISE_CONTROL_TARGET_SPEED, {"access", "change_mode", "require_min_max_supported_value", "unit", "version"}},
+        {VehicleProperty::ADAPTIVE_CRUISE_CONTROL_TARGET_TIME_GAP, {"access", "change_mode", "legacy_supported_values_in_config", "require_supported_values_list", "unit", "version"}},
+        {VehicleProperty::ADAPTIVE_CRUISE_CONTROL_LEAD_VEHICLE_MEASURED_DISTANCE, {"access", "change_mode", "require_min_max_supported_value", "unit", "version"}},
+        {VehicleProperty::HANDS_ON_DETECTION_ENABLED, {"access", "change_mode", "version"}},
+        {VehicleProperty::HANDS_ON_DETECTION_DRIVER_STATE, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::HANDS_ON_DETECTION_WARNING, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::DRIVER_DROWSINESS_ATTENTION_SYSTEM_ENABLED, {"access", "change_mode", "version"}},
+        {VehicleProperty::DRIVER_DROWSINESS_ATTENTION_STATE, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::DRIVER_DROWSINESS_ATTENTION_WARNING_ENABLED, {"access", "change_mode", "version"}},
+        {VehicleProperty::DRIVER_DROWSINESS_ATTENTION_WARNING, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::DRIVER_DISTRACTION_SYSTEM_ENABLED, {"access", "change_mode", "version"}},
+        {VehicleProperty::DRIVER_DISTRACTION_STATE, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::DRIVER_DISTRACTION_WARNING_ENABLED, {"access", "change_mode", "version"}},
+        {VehicleProperty::DRIVER_DISTRACTION_WARNING, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::LOW_SPEED_COLLISION_WARNING_ENABLED, {"access", "change_mode", "version"}},
+        {VehicleProperty::LOW_SPEED_COLLISION_WARNING_STATE, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::CROSS_TRAFFIC_MONITORING_ENABLED, {"access", "change_mode", "version"}},
+        {VehicleProperty::CROSS_TRAFFIC_MONITORING_WARNING_STATE, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
+        {VehicleProperty::LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_ENABLED, {"access", "change_mode", "version"}},
+        {VehicleProperty::LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_STATE, {"access", "change_mode", "data_enum", "require_supported_values_list", "version"}},
 };
-
-}  // namespace vehicle
-}  // namespace automotive
-}  // namespace hardware
-}  // namespace android
-}  // aidl
+}  // aidl::android::hardware::automotive::vehicle
diff --git a/automotive/vehicle/aidl/generated_lib/4/cpp/ChangeModeForVehicleProperty.h b/automotive/vehicle/aidl/generated_lib/4/cpp/ChangeModeForVehicleProperty.h
index 3775f18..b353ab9 100644
--- a/automotive/vehicle/aidl/generated_lib/4/cpp/ChangeModeForVehicleProperty.h
+++ b/automotive/vehicle/aidl/generated_lib/4/cpp/ChangeModeForVehicleProperty.h
@@ -29,12 +29,7 @@
 
 #include <unordered_map>
 
-namespace aidl {
-namespace android {
-namespace hardware {
-namespace automotive {
-namespace vehicle {
-
+namespace aidl::android::hardware::automotive::vehicle {
 std::unordered_map<VehicleProperty, VehiclePropertyChangeMode> ChangeModeForVehicleProperty = {
         {VehicleProperty::INFO_VIN, VehiclePropertyChangeMode::STATIC},
         {VehicleProperty::INFO_MAKE, VehiclePropertyChangeMode::STATIC},
@@ -317,9 +312,4 @@
         {VehicleProperty::LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_ENABLED, VehiclePropertyChangeMode::ON_CHANGE},
         {VehicleProperty::LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_STATE, VehiclePropertyChangeMode::ON_CHANGE},
 };
-
-}  // namespace vehicle
-}  // namespace automotive
-}  // namespace hardware
-}  // namespace android
-}  // aidl
+}  // aidl::android::hardware::automotive::vehicle
diff --git a/automotive/vehicle/aidl/generated_lib/4/cpp/VersionForVehicleProperty.h b/automotive/vehicle/aidl/generated_lib/4/cpp/VersionForVehicleProperty.h
index 0a28b68..5f6e047 100644
--- a/automotive/vehicle/aidl/generated_lib/4/cpp/VersionForVehicleProperty.h
+++ b/automotive/vehicle/aidl/generated_lib/4/cpp/VersionForVehicleProperty.h
@@ -28,12 +28,7 @@
 
 #include <unordered_map>
 
-namespace aidl {
-namespace android {
-namespace hardware {
-namespace automotive {
-namespace vehicle {
-
+namespace aidl::android::hardware::automotive::vehicle {
 std::unordered_map<VehicleProperty, int32_t> VersionForVehicleProperty = {
         {VehicleProperty::INFO_VIN, 2},
         {VehicleProperty::INFO_MAKE, 2},
@@ -316,9 +311,4 @@
         {VehicleProperty::LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_ENABLED, 3},
         {VehicleProperty::LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_STATE, 3},
 };
-
-}  // namespace vehicle
-}  // namespace automotive
-}  // namespace hardware
-}  // namespace android
-}  // aidl
+}  // aidl::android::hardware::automotive::vehicle
diff --git a/automotive/vehicle/aidl/generated_lib/4/java/AnnotationsForVehicleProperty.java b/automotive/vehicle/aidl/generated_lib/4/java/AnnotationsForVehicleProperty.java
index 9ef5f04..1d79180 100644
--- a/automotive/vehicle/aidl/generated_lib/4/java/AnnotationsForVehicleProperty.java
+++ b/automotive/vehicle/aidl/generated_lib/4/java/AnnotationsForVehicleProperty.java
@@ -30,286 +30,286 @@
 public final class AnnotationsForVehicleProperty {
 
     public static final Map<Integer, Set<String>> values = Map.ofEntries(
-        Map.entry(VehicleProperty.INFO_VIN, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.INFO_MAKE, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.INFO_MODEL, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.INFO_MODEL_YEAR, Set.of("change_mode", "access", "version", "unit")),
-        Map.entry(VehicleProperty.INFO_FUEL_CAPACITY, Set.of("change_mode", "access", "version", "unit")),
-        Map.entry(VehicleProperty.INFO_FUEL_TYPE, Set.of("change_mode", "access", "version", "data_enum")),
-        Map.entry(VehicleProperty.INFO_EV_BATTERY_CAPACITY, Set.of("change_mode", "access", "version", "unit")),
-        Map.entry(VehicleProperty.INFO_EV_CONNECTOR_TYPE, Set.of("change_mode", "access", "version", "data_enum")),
-        Map.entry(VehicleProperty.INFO_FUEL_DOOR_LOCATION, Set.of("change_mode", "access", "version", "data_enum")),
-        Map.entry(VehicleProperty.INFO_EV_PORT_LOCATION, Set.of("change_mode", "access", "version", "data_enum")),
-        Map.entry(VehicleProperty.INFO_DRIVER_SEAT, Set.of("change_mode", "access", "version", "data_enum")),
-        Map.entry(VehicleProperty.INFO_EXTERIOR_DIMENSIONS, Set.of("change_mode", "access", "version", "unit")),
-        Map.entry(VehicleProperty.INFO_MULTI_EV_PORT_LOCATIONS, Set.of("change_mode", "access", "version", "data_enum")),
-        Map.entry(VehicleProperty.INFO_MODEL_TRIM, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.INFO_VEHICLE_SIZE_CLASS, Set.of("change_mode", "access", "version", "data_enum")),
-        Map.entry(VehicleProperty.PERF_ODOMETER, Set.of("change_mode", "access", "version", "unit")),
-        Map.entry(VehicleProperty.PERF_VEHICLE_SPEED, Set.of("change_mode", "access", "version", "unit")),
-        Map.entry(VehicleProperty.PERF_VEHICLE_SPEED_DISPLAY, Set.of("change_mode", "access", "version", "unit")),
-        Map.entry(VehicleProperty.PERF_STEERING_ANGLE, Set.of("change_mode", "access", "version", "unit")),
-        Map.entry(VehicleProperty.PERF_REAR_STEERING_ANGLE, Set.of("change_mode", "access", "version", "unit")),
-        Map.entry(VehicleProperty.INSTANTANEOUS_FUEL_ECONOMY, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.INSTANTANEOUS_EV_EFFICIENCY, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.ENGINE_COOLANT_TEMP, Set.of("change_mode", "access", "version", "unit")),
-        Map.entry(VehicleProperty.ENGINE_OIL_LEVEL, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.ENGINE_OIL_TEMP, Set.of("change_mode", "access", "version", "unit")),
-        Map.entry(VehicleProperty.ENGINE_RPM, Set.of("change_mode", "access", "version", "unit")),
-        Map.entry(VehicleProperty.WHEEL_TICK, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.FUEL_LEVEL, Set.of("change_mode", "access", "version", "unit")),
-        Map.entry(VehicleProperty.FUEL_DOOR_OPEN, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.EV_BATTERY_LEVEL, Set.of("change_mode", "access", "version", "unit")),
-        Map.entry(VehicleProperty.EV_CURRENT_BATTERY_CAPACITY, Set.of("change_mode", "access", "version", "unit")),
-        Map.entry(VehicleProperty.EV_CHARGE_PORT_OPEN, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.EV_CHARGE_PORT_CONNECTED, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.EV_BATTERY_INSTANTANEOUS_CHARGE_RATE, Set.of("change_mode", "access", "version", "unit")),
-        Map.entry(VehicleProperty.RANGE_REMAINING, Set.of("change_mode", "access", "version", "unit")),
-        Map.entry(VehicleProperty.EV_BATTERY_AVERAGE_TEMPERATURE, Set.of("change_mode", "access", "version", "unit")),
-        Map.entry(VehicleProperty.TIRE_PRESSURE, Set.of("change_mode", "unit", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.CRITICALLY_LOW_TIRE_PRESSURE, Set.of("change_mode", "access", "version", "unit")),
-        Map.entry(VehicleProperty.ACCELERATOR_PEDAL_COMPRESSION_PERCENTAGE, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.BRAKE_PEDAL_COMPRESSION_PERCENTAGE, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.BRAKE_PAD_WEAR_PERCENTAGE, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.BRAKE_FLUID_LEVEL_LOW, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.VEHICLE_PASSIVE_SUSPENSION_HEIGHT, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.ENGINE_IDLE_AUTO_STOP_ENABLED, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.IMPACT_DETECTED, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum", "data_enum_bit_flags")),
-        Map.entry(VehicleProperty.VEHICLE_HORN_ENGAGED, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.GEAR_SELECTION, Set.of("change_mode", "legacy_supported_values_in_config", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.CURRENT_GEAR, Set.of("change_mode", "legacy_supported_values_in_config", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.PARKING_BRAKE_ON, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.PARKING_BRAKE_AUTO_APPLY, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.EV_BRAKE_REGENERATION_LEVEL, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.FUEL_LEVEL_LOW, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.NIGHT_MODE, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.TURN_SIGNAL_STATE, Set.of("change_mode", "access", "version", "data_enum")),
-        Map.entry(VehicleProperty.IGNITION_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.ABS_ACTIVE, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.TRACTION_CONTROL_ACTIVE, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.EV_STOPPING_MODE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.ELECTRONIC_STABILITY_CONTROL_ENABLED, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.ELECTRONIC_STABILITY_CONTROL_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.TURN_SIGNAL_LIGHT_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum", "data_enum_bit_flags")),
-        Map.entry(VehicleProperty.TURN_SIGNAL_SWITCH, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.HVAC_FAN_SPEED, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.HVAC_FAN_DIRECTION, Set.of("change_mode", "access", "version", "data_enum")),
-        Map.entry(VehicleProperty.HVAC_TEMPERATURE_CURRENT, Set.of("change_mode", "access", "version", "unit")),
-        Map.entry(VehicleProperty.HVAC_TEMPERATURE_SET, Set.of("change_mode", "unit", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.HVAC_DEFROSTER, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.HVAC_AC_ON, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.HVAC_MAX_AC_ON, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.HVAC_MAX_DEFROST_ON, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.HVAC_RECIRC_ON, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.HVAC_DUAL_ON, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.HVAC_AUTO_ON, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.HVAC_SEAT_TEMPERATURE, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.HVAC_SIDE_MIRROR_HEAT, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.HVAC_STEERING_WHEEL_HEAT, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.HVAC_TEMPERATURE_DISPLAY_UNITS, Set.of("change_mode", "legacy_supported_values_in_config", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.HVAC_ACTUAL_FAN_SPEED_RPM, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.HVAC_POWER_ON, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.HVAC_FAN_DIRECTION_AVAILABLE, Set.of("change_mode", "access", "version", "data_enum", "data_enum_bit_flags")),
-        Map.entry(VehicleProperty.HVAC_AUTO_RECIRC_ON, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.HVAC_SEAT_VENTILATION, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.HVAC_ELECTRIC_DEFROSTER_ON, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.HVAC_TEMPERATURE_VALUE_SUGGESTION, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.DISTANCE_DISPLAY_UNITS, Set.of("change_mode", "legacy_supported_values_in_config", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.FUEL_VOLUME_DISPLAY_UNITS, Set.of("change_mode", "legacy_supported_values_in_config", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.TIRE_PRESSURE_DISPLAY_UNITS, Set.of("change_mode", "legacy_supported_values_in_config", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.EV_BATTERY_DISPLAY_UNITS, Set.of("change_mode", "legacy_supported_values_in_config", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.FUEL_CONSUMPTION_UNITS_DISTANCE_OVER_VOLUME, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.VEHICLE_SPEED_DISPLAY_UNITS, Set.of("change_mode", "legacy_supported_values_in_config", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.EXTERNAL_CAR_TIME, Set.of("change_mode", "access", "version", "unit")),
-        Map.entry(VehicleProperty.ANDROID_EPOCH_TIME, Set.of("change_mode", "access", "version", "unit")),
-        Map.entry(VehicleProperty.STORAGE_ENCRYPTION_BINDING_SEED, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.ENV_OUTSIDE_TEMPERATURE, Set.of("change_mode", "access", "version", "unit")),
-        Map.entry(VehicleProperty.AP_POWER_STATE_REQ, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.AP_POWER_STATE_REPORT, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.AP_POWER_BOOTUP_REASON, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.DISPLAY_BRIGHTNESS, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.PER_DISPLAY_BRIGHTNESS, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.VALET_MODE_ENABLED, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.HEAD_UP_DISPLAY_ENABLED, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.HW_KEY_INPUT, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.HW_KEY_INPUT_V2, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.HW_MOTION_INPUT, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.HW_ROTARY_INPUT, Set.of("change_mode", "access", "version", "data_enum")),
-        Map.entry(VehicleProperty.HW_CUSTOM_INPUT, Set.of("change_mode", "access", "version", "data_enum")),
-        Map.entry(VehicleProperty.DOOR_POS, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.DOOR_MOVE, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.DOOR_LOCK, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.DOOR_CHILD_LOCK_ENABLED, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.MIRROR_Z_POS, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.MIRROR_Z_MOVE, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.MIRROR_Y_POS, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.MIRROR_Y_MOVE, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.MIRROR_LOCK, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.MIRROR_FOLD, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.MIRROR_AUTO_FOLD_ENABLED, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.MIRROR_AUTO_TILT_ENABLED, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.SEAT_MEMORY_SELECT, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.SEAT_MEMORY_SET, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.SEAT_BELT_BUCKLED, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.SEAT_BELT_HEIGHT_POS, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.SEAT_BELT_HEIGHT_MOVE, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.SEAT_FORE_AFT_POS, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.SEAT_FORE_AFT_MOVE, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.SEAT_BACKREST_ANGLE_1_POS, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.SEAT_BACKREST_ANGLE_1_MOVE, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.SEAT_BACKREST_ANGLE_2_POS, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.SEAT_BACKREST_ANGLE_2_MOVE, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.SEAT_HEIGHT_POS, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.SEAT_HEIGHT_MOVE, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.SEAT_DEPTH_POS, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.SEAT_DEPTH_MOVE, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.SEAT_TILT_POS, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.SEAT_TILT_MOVE, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.SEAT_LUMBAR_FORE_AFT_POS, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.SEAT_LUMBAR_FORE_AFT_MOVE, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.SEAT_LUMBAR_SIDE_SUPPORT_POS, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.SEAT_LUMBAR_SIDE_SUPPORT_MOVE, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.SEAT_HEADREST_HEIGHT_POS, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.SEAT_HEADREST_HEIGHT_POS_V2, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.SEAT_HEADREST_HEIGHT_MOVE, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.SEAT_HEADREST_ANGLE_POS, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.SEAT_HEADREST_ANGLE_MOVE, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.SEAT_HEADREST_FORE_AFT_POS, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.SEAT_HEADREST_FORE_AFT_MOVE, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.SEAT_FOOTWELL_LIGHTS_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.SEAT_FOOTWELL_LIGHTS_SWITCH, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.SEAT_EASY_ACCESS_ENABLED, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.SEAT_AIRBAG_ENABLED, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.SEAT_AIRBAGS_DEPLOYED, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.SEAT_CUSHION_SIDE_SUPPORT_POS, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.SEAT_CUSHION_SIDE_SUPPORT_MOVE, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.SEAT_LUMBAR_VERTICAL_POS, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.SEAT_LUMBAR_VERTICAL_MOVE, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.SEAT_WALK_IN_POS, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.SEAT_BELT_PRETENSIONER_DEPLOYED, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.SEAT_OCCUPANCY, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.WINDOW_POS, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.WINDOW_MOVE, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.WINDOW_LOCK, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.WINDSHIELD_WIPERS_PERIOD, Set.of("change_mode", "unit", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.WINDSHIELD_WIPERS_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.WINDSHIELD_WIPERS_SWITCH, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.STEERING_WHEEL_DEPTH_POS, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.STEERING_WHEEL_DEPTH_MOVE, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.STEERING_WHEEL_HEIGHT_POS, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.STEERING_WHEEL_HEIGHT_MOVE, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.STEERING_WHEEL_THEFT_LOCK_ENABLED, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.STEERING_WHEEL_LOCKED, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.STEERING_WHEEL_EASY_ACCESS_ENABLED, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.GLOVE_BOX_DOOR_POS, Set.of("change_mode", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.GLOVE_BOX_LOCKED, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.VEHICLE_MAP_SERVICE, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.LOCATION_CHARACTERIZATION, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.ULTRASONICS_SENSOR_POSITION, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.ULTRASONICS_SENSOR_ORIENTATION, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.ULTRASONICS_SENSOR_FIELD_OF_VIEW, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.ULTRASONICS_SENSOR_DETECTION_RANGE, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.ULTRASONICS_SENSOR_SUPPORTED_RANGES, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.ULTRASONICS_SENSOR_MEASURED_DISTANCE, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.OBD2_LIVE_FRAME, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.OBD2_FREEZE_FRAME, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.OBD2_FREEZE_FRAME_INFO, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.OBD2_FREEZE_FRAME_CLEAR, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.HEADLIGHTS_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.HIGH_BEAM_LIGHTS_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.FOG_LIGHTS_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.HAZARD_LIGHTS_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.HEADLIGHTS_SWITCH, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.HIGH_BEAM_LIGHTS_SWITCH, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.FOG_LIGHTS_SWITCH, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.HAZARD_LIGHTS_SWITCH, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.CABIN_LIGHTS_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.CABIN_LIGHTS_SWITCH, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.READING_LIGHTS_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.READING_LIGHTS_SWITCH, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.STEERING_WHEEL_LIGHTS_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.STEERING_WHEEL_LIGHTS_SWITCH, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.SUPPORT_CUSTOMIZE_VENDOR_PERMISSION, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.DISABLED_OPTIONAL_FEATURES, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.INITIAL_USER_INFO, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.SWITCH_USER, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.CREATE_USER, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.REMOVE_USER, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.USER_IDENTIFICATION_ASSOCIATION, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.EVS_SERVICE_REQUEST, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.POWER_POLICY_REQ, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.POWER_POLICY_GROUP_REQ, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.CURRENT_POWER_POLICY, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.WATCHDOG_ALIVE, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.WATCHDOG_TERMINATED_PROCESS, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.VHAL_HEARTBEAT, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.CLUSTER_SWITCH_UI, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.CLUSTER_DISPLAY_STATE, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.CLUSTER_REPORT_STATE, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.CLUSTER_REQUEST_DISPLAY, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.CLUSTER_NAVIGATION_STATE, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.ELECTRONIC_TOLL_COLLECTION_CARD_TYPE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.ELECTRONIC_TOLL_COLLECTION_CARD_STATUS, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.FRONT_FOG_LIGHTS_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.FRONT_FOG_LIGHTS_SWITCH, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.REAR_FOG_LIGHTS_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.REAR_FOG_LIGHTS_SWITCH, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.EV_CHARGE_CURRENT_DRAW_LIMIT, Set.of("change_mode", "access", "version", "unit")),
-        Map.entry(VehicleProperty.EV_CHARGE_PERCENT_LIMIT, Set.of("change_mode", "legacy_supported_values_in_config", "access", "require_supported_values_list", "version")),
-        Map.entry(VehicleProperty.EV_CHARGE_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.EV_CHARGE_SWITCH, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.EV_CHARGE_TIME_REMAINING, Set.of("change_mode", "access", "version", "unit")),
-        Map.entry(VehicleProperty.EV_REGENERATIVE_BRAKING_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.TRAILER_PRESENT, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.VEHICLE_CURB_WEIGHT, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.GENERAL_SAFETY_REGULATION_COMPLIANCE_REQUIREMENT, Set.of("change_mode", "access", "version", "data_enum")),
-        Map.entry(VehicleProperty.SUPPORTED_PROPERTY_IDS, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.SHUTDOWN_REQUEST, Set.of("change_mode", "access", "version", "data_enum")),
-        Map.entry(VehicleProperty.VEHICLE_IN_USE, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.CLUSTER_HEARTBEAT, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.VEHICLE_DRIVING_AUTOMATION_CURRENT_LEVEL, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.VEHICLE_DRIVING_AUTOMATION_TARGET_LEVEL, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.CAMERA_SERVICE_CURRENT_STATE, Set.of("change_mode", "access", "version", "data_enum")),
-        Map.entry(VehicleProperty.PER_DISPLAY_MAX_BRIGHTNESS, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.AUTOMATIC_EMERGENCY_BRAKING_ENABLED, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.AUTOMATIC_EMERGENCY_BRAKING_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.FORWARD_COLLISION_WARNING_ENABLED, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.FORWARD_COLLISION_WARNING_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.BLIND_SPOT_WARNING_ENABLED, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.BLIND_SPOT_WARNING_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.LANE_DEPARTURE_WARNING_ENABLED, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.LANE_DEPARTURE_WARNING_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.LANE_KEEP_ASSIST_ENABLED, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.LANE_KEEP_ASSIST_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.LANE_CENTERING_ASSIST_ENABLED, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.LANE_CENTERING_ASSIST_COMMAND, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.LANE_CENTERING_ASSIST_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.EMERGENCY_LANE_KEEP_ASSIST_ENABLED, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.EMERGENCY_LANE_KEEP_ASSIST_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.CRUISE_CONTROL_ENABLED, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.CRUISE_CONTROL_TYPE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.CRUISE_CONTROL_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.CRUISE_CONTROL_COMMAND, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.CRUISE_CONTROL_TARGET_SPEED, Set.of("change_mode", "unit", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.ADAPTIVE_CRUISE_CONTROL_TARGET_TIME_GAP, Set.of("change_mode", "unit", "legacy_supported_values_in_config", "access", "require_supported_values_list", "version")),
-        Map.entry(VehicleProperty.ADAPTIVE_CRUISE_CONTROL_LEAD_VEHICLE_MEASURED_DISTANCE, Set.of("change_mode", "unit", "require_min_max_supported_value", "access", "version")),
-        Map.entry(VehicleProperty.HANDS_ON_DETECTION_ENABLED, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.HANDS_ON_DETECTION_DRIVER_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.HANDS_ON_DETECTION_WARNING, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.DRIVER_DROWSINESS_ATTENTION_SYSTEM_ENABLED, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.DRIVER_DROWSINESS_ATTENTION_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.DRIVER_DROWSINESS_ATTENTION_WARNING_ENABLED, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.DRIVER_DROWSINESS_ATTENTION_WARNING, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.DRIVER_DISTRACTION_SYSTEM_ENABLED, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.DRIVER_DISTRACTION_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.DRIVER_DISTRACTION_WARNING_ENABLED, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.DRIVER_DISTRACTION_WARNING, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.LOW_SPEED_COLLISION_WARNING_ENABLED, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.LOW_SPEED_COLLISION_WARNING_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.CROSS_TRAFFIC_MONITORING_ENABLED, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.CROSS_TRAFFIC_MONITORING_WARNING_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum")),
-        Map.entry(VehicleProperty.LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_ENABLED, Set.of("change_mode", "access", "version")),
-        Map.entry(VehicleProperty.LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_STATE, Set.of("change_mode", "access", "require_supported_values_list", "version", "data_enum"))
+        Map.entry(VehicleProperty.INFO_VIN, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.INFO_MAKE, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.INFO_MODEL, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.INFO_MODEL_YEAR, Set.of("access", "change_mode", "unit", "version")),
+        Map.entry(VehicleProperty.INFO_FUEL_CAPACITY, Set.of("access", "change_mode", "unit", "version")),
+        Map.entry(VehicleProperty.INFO_FUEL_TYPE, Set.of("access", "change_mode", "data_enum", "version")),
+        Map.entry(VehicleProperty.INFO_EV_BATTERY_CAPACITY, Set.of("access", "change_mode", "unit", "version")),
+        Map.entry(VehicleProperty.INFO_EV_CONNECTOR_TYPE, Set.of("access", "change_mode", "data_enum", "version")),
+        Map.entry(VehicleProperty.INFO_FUEL_DOOR_LOCATION, Set.of("access", "change_mode", "data_enum", "version")),
+        Map.entry(VehicleProperty.INFO_EV_PORT_LOCATION, Set.of("access", "change_mode", "data_enum", "version")),
+        Map.entry(VehicleProperty.INFO_DRIVER_SEAT, Set.of("access", "change_mode", "data_enum", "version")),
+        Map.entry(VehicleProperty.INFO_EXTERIOR_DIMENSIONS, Set.of("access", "change_mode", "unit", "version")),
+        Map.entry(VehicleProperty.INFO_MULTI_EV_PORT_LOCATIONS, Set.of("access", "change_mode", "data_enum", "version")),
+        Map.entry(VehicleProperty.INFO_MODEL_TRIM, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.INFO_VEHICLE_SIZE_CLASS, Set.of("access", "change_mode", "data_enum", "version")),
+        Map.entry(VehicleProperty.PERF_ODOMETER, Set.of("access", "change_mode", "unit", "version")),
+        Map.entry(VehicleProperty.PERF_VEHICLE_SPEED, Set.of("access", "change_mode", "unit", "version")),
+        Map.entry(VehicleProperty.PERF_VEHICLE_SPEED_DISPLAY, Set.of("access", "change_mode", "unit", "version")),
+        Map.entry(VehicleProperty.PERF_STEERING_ANGLE, Set.of("access", "change_mode", "unit", "version")),
+        Map.entry(VehicleProperty.PERF_REAR_STEERING_ANGLE, Set.of("access", "change_mode", "unit", "version")),
+        Map.entry(VehicleProperty.INSTANTANEOUS_FUEL_ECONOMY, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.INSTANTANEOUS_EV_EFFICIENCY, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.ENGINE_COOLANT_TEMP, Set.of("access", "change_mode", "unit", "version")),
+        Map.entry(VehicleProperty.ENGINE_OIL_LEVEL, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.ENGINE_OIL_TEMP, Set.of("access", "change_mode", "unit", "version")),
+        Map.entry(VehicleProperty.ENGINE_RPM, Set.of("access", "change_mode", "unit", "version")),
+        Map.entry(VehicleProperty.WHEEL_TICK, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.FUEL_LEVEL, Set.of("access", "change_mode", "unit", "version")),
+        Map.entry(VehicleProperty.FUEL_DOOR_OPEN, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.EV_BATTERY_LEVEL, Set.of("access", "change_mode", "unit", "version")),
+        Map.entry(VehicleProperty.EV_CURRENT_BATTERY_CAPACITY, Set.of("access", "change_mode", "unit", "version")),
+        Map.entry(VehicleProperty.EV_CHARGE_PORT_OPEN, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.EV_CHARGE_PORT_CONNECTED, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.EV_BATTERY_INSTANTANEOUS_CHARGE_RATE, Set.of("access", "change_mode", "unit", "version")),
+        Map.entry(VehicleProperty.RANGE_REMAINING, Set.of("access", "change_mode", "unit", "version")),
+        Map.entry(VehicleProperty.EV_BATTERY_AVERAGE_TEMPERATURE, Set.of("access", "change_mode", "unit", "version")),
+        Map.entry(VehicleProperty.TIRE_PRESSURE, Set.of("access", "change_mode", "require_min_max_supported_value", "unit", "version")),
+        Map.entry(VehicleProperty.CRITICALLY_LOW_TIRE_PRESSURE, Set.of("access", "change_mode", "unit", "version")),
+        Map.entry(VehicleProperty.ACCELERATOR_PEDAL_COMPRESSION_PERCENTAGE, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.BRAKE_PEDAL_COMPRESSION_PERCENTAGE, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.BRAKE_PAD_WEAR_PERCENTAGE, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.BRAKE_FLUID_LEVEL_LOW, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.VEHICLE_PASSIVE_SUSPENSION_HEIGHT, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.ENGINE_IDLE_AUTO_STOP_ENABLED, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.IMPACT_DETECTED, Set.of("access", "change_mode", "data_enum", "data_enum_bit_flags", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.VEHICLE_HORN_ENGAGED, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.GEAR_SELECTION, Set.of("access", "change_mode", "data_enum", "legacy_supported_values_in_config", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.CURRENT_GEAR, Set.of("access", "change_mode", "data_enum", "legacy_supported_values_in_config", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.PARKING_BRAKE_ON, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.PARKING_BRAKE_AUTO_APPLY, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.EV_BRAKE_REGENERATION_LEVEL, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.FUEL_LEVEL_LOW, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.NIGHT_MODE, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.TURN_SIGNAL_STATE, Set.of("access", "change_mode", "data_enum", "version")),
+        Map.entry(VehicleProperty.IGNITION_STATE, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.ABS_ACTIVE, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.TRACTION_CONTROL_ACTIVE, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.EV_STOPPING_MODE, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.ELECTRONIC_STABILITY_CONTROL_ENABLED, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.ELECTRONIC_STABILITY_CONTROL_STATE, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.TURN_SIGNAL_LIGHT_STATE, Set.of("access", "change_mode", "data_enum", "data_enum_bit_flags", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.TURN_SIGNAL_SWITCH, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.HVAC_FAN_SPEED, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.HVAC_FAN_DIRECTION, Set.of("access", "change_mode", "data_enum", "version")),
+        Map.entry(VehicleProperty.HVAC_TEMPERATURE_CURRENT, Set.of("access", "change_mode", "unit", "version")),
+        Map.entry(VehicleProperty.HVAC_TEMPERATURE_SET, Set.of("access", "change_mode", "require_min_max_supported_value", "unit", "version")),
+        Map.entry(VehicleProperty.HVAC_DEFROSTER, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.HVAC_AC_ON, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.HVAC_MAX_AC_ON, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.HVAC_MAX_DEFROST_ON, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.HVAC_RECIRC_ON, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.HVAC_DUAL_ON, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.HVAC_AUTO_ON, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.HVAC_SEAT_TEMPERATURE, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.HVAC_SIDE_MIRROR_HEAT, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.HVAC_STEERING_WHEEL_HEAT, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.HVAC_TEMPERATURE_DISPLAY_UNITS, Set.of("access", "change_mode", "data_enum", "legacy_supported_values_in_config", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.HVAC_ACTUAL_FAN_SPEED_RPM, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.HVAC_POWER_ON, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.HVAC_FAN_DIRECTION_AVAILABLE, Set.of("access", "change_mode", "data_enum", "data_enum_bit_flags", "version")),
+        Map.entry(VehicleProperty.HVAC_AUTO_RECIRC_ON, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.HVAC_SEAT_VENTILATION, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.HVAC_ELECTRIC_DEFROSTER_ON, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.HVAC_TEMPERATURE_VALUE_SUGGESTION, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.DISTANCE_DISPLAY_UNITS, Set.of("access", "change_mode", "data_enum", "legacy_supported_values_in_config", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.FUEL_VOLUME_DISPLAY_UNITS, Set.of("access", "change_mode", "data_enum", "legacy_supported_values_in_config", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.TIRE_PRESSURE_DISPLAY_UNITS, Set.of("access", "change_mode", "data_enum", "legacy_supported_values_in_config", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.EV_BATTERY_DISPLAY_UNITS, Set.of("access", "change_mode", "data_enum", "legacy_supported_values_in_config", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.FUEL_CONSUMPTION_UNITS_DISTANCE_OVER_VOLUME, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.VEHICLE_SPEED_DISPLAY_UNITS, Set.of("access", "change_mode", "data_enum", "legacy_supported_values_in_config", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.EXTERNAL_CAR_TIME, Set.of("access", "change_mode", "unit", "version")),
+        Map.entry(VehicleProperty.ANDROID_EPOCH_TIME, Set.of("access", "change_mode", "unit", "version")),
+        Map.entry(VehicleProperty.STORAGE_ENCRYPTION_BINDING_SEED, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.ENV_OUTSIDE_TEMPERATURE, Set.of("access", "change_mode", "unit", "version")),
+        Map.entry(VehicleProperty.AP_POWER_STATE_REQ, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.AP_POWER_STATE_REPORT, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.AP_POWER_BOOTUP_REASON, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.DISPLAY_BRIGHTNESS, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.PER_DISPLAY_BRIGHTNESS, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.VALET_MODE_ENABLED, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.HEAD_UP_DISPLAY_ENABLED, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.HW_KEY_INPUT, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.HW_KEY_INPUT_V2, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.HW_MOTION_INPUT, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.HW_ROTARY_INPUT, Set.of("access", "change_mode", "data_enum", "version")),
+        Map.entry(VehicleProperty.HW_CUSTOM_INPUT, Set.of("access", "change_mode", "data_enum", "version")),
+        Map.entry(VehicleProperty.DOOR_POS, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.DOOR_MOVE, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.DOOR_LOCK, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.DOOR_CHILD_LOCK_ENABLED, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.MIRROR_Z_POS, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.MIRROR_Z_MOVE, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.MIRROR_Y_POS, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.MIRROR_Y_MOVE, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.MIRROR_LOCK, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.MIRROR_FOLD, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.MIRROR_AUTO_FOLD_ENABLED, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.MIRROR_AUTO_TILT_ENABLED, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.SEAT_MEMORY_SELECT, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.SEAT_MEMORY_SET, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.SEAT_BELT_BUCKLED, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.SEAT_BELT_HEIGHT_POS, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.SEAT_BELT_HEIGHT_MOVE, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.SEAT_FORE_AFT_POS, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.SEAT_FORE_AFT_MOVE, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.SEAT_BACKREST_ANGLE_1_POS, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.SEAT_BACKREST_ANGLE_1_MOVE, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.SEAT_BACKREST_ANGLE_2_POS, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.SEAT_BACKREST_ANGLE_2_MOVE, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.SEAT_HEIGHT_POS, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.SEAT_HEIGHT_MOVE, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.SEAT_DEPTH_POS, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.SEAT_DEPTH_MOVE, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.SEAT_TILT_POS, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.SEAT_TILT_MOVE, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.SEAT_LUMBAR_FORE_AFT_POS, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.SEAT_LUMBAR_FORE_AFT_MOVE, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.SEAT_LUMBAR_SIDE_SUPPORT_POS, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.SEAT_LUMBAR_SIDE_SUPPORT_MOVE, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.SEAT_HEADREST_HEIGHT_POS, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.SEAT_HEADREST_HEIGHT_POS_V2, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.SEAT_HEADREST_HEIGHT_MOVE, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.SEAT_HEADREST_ANGLE_POS, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.SEAT_HEADREST_ANGLE_MOVE, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.SEAT_HEADREST_FORE_AFT_POS, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.SEAT_HEADREST_FORE_AFT_MOVE, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.SEAT_FOOTWELL_LIGHTS_STATE, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.SEAT_FOOTWELL_LIGHTS_SWITCH, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.SEAT_EASY_ACCESS_ENABLED, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.SEAT_AIRBAG_ENABLED, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.SEAT_AIRBAGS_DEPLOYED, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.SEAT_CUSHION_SIDE_SUPPORT_POS, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.SEAT_CUSHION_SIDE_SUPPORT_MOVE, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.SEAT_LUMBAR_VERTICAL_POS, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.SEAT_LUMBAR_VERTICAL_MOVE, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.SEAT_WALK_IN_POS, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.SEAT_BELT_PRETENSIONER_DEPLOYED, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.SEAT_OCCUPANCY, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.WINDOW_POS, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.WINDOW_MOVE, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.WINDOW_LOCK, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.WINDSHIELD_WIPERS_PERIOD, Set.of("access", "change_mode", "require_min_max_supported_value", "unit", "version")),
+        Map.entry(VehicleProperty.WINDSHIELD_WIPERS_STATE, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.WINDSHIELD_WIPERS_SWITCH, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.STEERING_WHEEL_DEPTH_POS, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.STEERING_WHEEL_DEPTH_MOVE, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.STEERING_WHEEL_HEIGHT_POS, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.STEERING_WHEEL_HEIGHT_MOVE, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.STEERING_WHEEL_THEFT_LOCK_ENABLED, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.STEERING_WHEEL_LOCKED, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.STEERING_WHEEL_EASY_ACCESS_ENABLED, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.GLOVE_BOX_DOOR_POS, Set.of("access", "change_mode", "require_min_max_supported_value", "version")),
+        Map.entry(VehicleProperty.GLOVE_BOX_LOCKED, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.VEHICLE_MAP_SERVICE, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.LOCATION_CHARACTERIZATION, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.ULTRASONICS_SENSOR_POSITION, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.ULTRASONICS_SENSOR_ORIENTATION, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.ULTRASONICS_SENSOR_FIELD_OF_VIEW, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.ULTRASONICS_SENSOR_DETECTION_RANGE, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.ULTRASONICS_SENSOR_SUPPORTED_RANGES, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.ULTRASONICS_SENSOR_MEASURED_DISTANCE, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.OBD2_LIVE_FRAME, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.OBD2_FREEZE_FRAME, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.OBD2_FREEZE_FRAME_INFO, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.OBD2_FREEZE_FRAME_CLEAR, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.HEADLIGHTS_STATE, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.HIGH_BEAM_LIGHTS_STATE, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.FOG_LIGHTS_STATE, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.HAZARD_LIGHTS_STATE, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.HEADLIGHTS_SWITCH, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.HIGH_BEAM_LIGHTS_SWITCH, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.FOG_LIGHTS_SWITCH, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.HAZARD_LIGHTS_SWITCH, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.CABIN_LIGHTS_STATE, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.CABIN_LIGHTS_SWITCH, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.READING_LIGHTS_STATE, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.READING_LIGHTS_SWITCH, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.STEERING_WHEEL_LIGHTS_STATE, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.STEERING_WHEEL_LIGHTS_SWITCH, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.SUPPORT_CUSTOMIZE_VENDOR_PERMISSION, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.DISABLED_OPTIONAL_FEATURES, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.INITIAL_USER_INFO, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.SWITCH_USER, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.CREATE_USER, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.REMOVE_USER, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.USER_IDENTIFICATION_ASSOCIATION, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.EVS_SERVICE_REQUEST, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.POWER_POLICY_REQ, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.POWER_POLICY_GROUP_REQ, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.CURRENT_POWER_POLICY, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.WATCHDOG_ALIVE, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.WATCHDOG_TERMINATED_PROCESS, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.VHAL_HEARTBEAT, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.CLUSTER_SWITCH_UI, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.CLUSTER_DISPLAY_STATE, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.CLUSTER_REPORT_STATE, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.CLUSTER_REQUEST_DISPLAY, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.CLUSTER_NAVIGATION_STATE, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.ELECTRONIC_TOLL_COLLECTION_CARD_TYPE, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.ELECTRONIC_TOLL_COLLECTION_CARD_STATUS, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.FRONT_FOG_LIGHTS_STATE, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.FRONT_FOG_LIGHTS_SWITCH, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.REAR_FOG_LIGHTS_STATE, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.REAR_FOG_LIGHTS_SWITCH, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.EV_CHARGE_CURRENT_DRAW_LIMIT, Set.of("access", "change_mode", "unit", "version")),
+        Map.entry(VehicleProperty.EV_CHARGE_PERCENT_LIMIT, Set.of("access", "change_mode", "legacy_supported_values_in_config", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.EV_CHARGE_STATE, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.EV_CHARGE_SWITCH, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.EV_CHARGE_TIME_REMAINING, Set.of("access", "change_mode", "unit", "version")),
+        Map.entry(VehicleProperty.EV_REGENERATIVE_BRAKING_STATE, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.TRAILER_PRESENT, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.VEHICLE_CURB_WEIGHT, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.GENERAL_SAFETY_REGULATION_COMPLIANCE_REQUIREMENT, Set.of("access", "change_mode", "data_enum", "version")),
+        Map.entry(VehicleProperty.SUPPORTED_PROPERTY_IDS, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.SHUTDOWN_REQUEST, Set.of("access", "change_mode", "data_enum", "version")),
+        Map.entry(VehicleProperty.VEHICLE_IN_USE, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.CLUSTER_HEARTBEAT, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.VEHICLE_DRIVING_AUTOMATION_CURRENT_LEVEL, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.VEHICLE_DRIVING_AUTOMATION_TARGET_LEVEL, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.CAMERA_SERVICE_CURRENT_STATE, Set.of("access", "change_mode", "data_enum", "version")),
+        Map.entry(VehicleProperty.PER_DISPLAY_MAX_BRIGHTNESS, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.AUTOMATIC_EMERGENCY_BRAKING_ENABLED, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.AUTOMATIC_EMERGENCY_BRAKING_STATE, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.FORWARD_COLLISION_WARNING_ENABLED, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.FORWARD_COLLISION_WARNING_STATE, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.BLIND_SPOT_WARNING_ENABLED, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.BLIND_SPOT_WARNING_STATE, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.LANE_DEPARTURE_WARNING_ENABLED, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.LANE_DEPARTURE_WARNING_STATE, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.LANE_KEEP_ASSIST_ENABLED, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.LANE_KEEP_ASSIST_STATE, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.LANE_CENTERING_ASSIST_ENABLED, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.LANE_CENTERING_ASSIST_COMMAND, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.LANE_CENTERING_ASSIST_STATE, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.EMERGENCY_LANE_KEEP_ASSIST_ENABLED, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.EMERGENCY_LANE_KEEP_ASSIST_STATE, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.CRUISE_CONTROL_ENABLED, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.CRUISE_CONTROL_TYPE, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.CRUISE_CONTROL_STATE, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.CRUISE_CONTROL_COMMAND, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.CRUISE_CONTROL_TARGET_SPEED, Set.of("access", "change_mode", "require_min_max_supported_value", "unit", "version")),
+        Map.entry(VehicleProperty.ADAPTIVE_CRUISE_CONTROL_TARGET_TIME_GAP, Set.of("access", "change_mode", "legacy_supported_values_in_config", "require_supported_values_list", "unit", "version")),
+        Map.entry(VehicleProperty.ADAPTIVE_CRUISE_CONTROL_LEAD_VEHICLE_MEASURED_DISTANCE, Set.of("access", "change_mode", "require_min_max_supported_value", "unit", "version")),
+        Map.entry(VehicleProperty.HANDS_ON_DETECTION_ENABLED, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.HANDS_ON_DETECTION_DRIVER_STATE, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.HANDS_ON_DETECTION_WARNING, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.DRIVER_DROWSINESS_ATTENTION_SYSTEM_ENABLED, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.DRIVER_DROWSINESS_ATTENTION_STATE, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.DRIVER_DROWSINESS_ATTENTION_WARNING_ENABLED, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.DRIVER_DROWSINESS_ATTENTION_WARNING, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.DRIVER_DISTRACTION_SYSTEM_ENABLED, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.DRIVER_DISTRACTION_STATE, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.DRIVER_DISTRACTION_WARNING_ENABLED, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.DRIVER_DISTRACTION_WARNING, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.LOW_SPEED_COLLISION_WARNING_ENABLED, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.LOW_SPEED_COLLISION_WARNING_STATE, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.CROSS_TRAFFIC_MONITORING_ENABLED, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.CROSS_TRAFFIC_MONITORING_WARNING_STATE, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version")),
+        Map.entry(VehicleProperty.LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_ENABLED, Set.of("access", "change_mode", "version")),
+        Map.entry(VehicleProperty.LOW_SPEED_AUTOMATIC_EMERGENCY_BRAKING_STATE, Set.of("access", "change_mode", "data_enum", "require_supported_values_list", "version"))
     );
 
 }
diff --git a/automotive/vehicle/aidl/impl/current/default_config/JsonConfigLoader/src/JsonConfigLoader.cpp b/automotive/vehicle/aidl/impl/current/default_config/JsonConfigLoader/src/JsonConfigLoader.cpp
index f910beb..5b945b2 100644
--- a/automotive/vehicle/aidl/impl/current/default_config/JsonConfigLoader/src/JsonConfigLoader.cpp
+++ b/automotive/vehicle/aidl/impl/current/default_config/JsonConfigLoader/src/JsonConfigLoader.cpp
@@ -34,7 +34,6 @@
 
 namespace jsonconfigloader_impl {
 
-using ::aidl::android::hardware::automotive::vehicle::AccessForVehicleProperty;
 using ::aidl::android::hardware::automotive::vehicle::AutomaticEmergencyBrakingState;
 using ::aidl::android::hardware::automotive::vehicle::BlindSpotWarningState;
 using ::aidl::android::hardware::automotive::vehicle::CameraServiceState;
@@ -43,6 +42,7 @@
 using ::aidl::android::hardware::automotive::vehicle::CruiseControlCommand;
 using ::aidl::android::hardware::automotive::vehicle::CruiseControlState;
 using ::aidl::android::hardware::automotive::vehicle::CruiseControlType;
+using ::aidl::android::hardware::automotive::vehicle::DefaultAccessForVehicleProperty;
 using ::aidl::android::hardware::automotive::vehicle::DriverDistractionState;
 using ::aidl::android::hardware::automotive::vehicle::DriverDistractionWarning;
 using ::aidl::android::hardware::automotive::vehicle::DriverDrowsinessAttentionState;
@@ -640,8 +640,8 @@
     configDecl.config.prop = propId;
     std::string propStr = propJsonValue["property"].toStyledString();
     VehiclePropertyAccess* defaultAccessMode = NULL;
-    auto itAccess = AccessForVehicleProperty.find(static_cast<VehicleProperty>(propId));
-    if (itAccess != AccessForVehicleProperty.end()) {
+    auto itAccess = DefaultAccessForVehicleProperty.find(static_cast<VehicleProperty>(propId));
+    if (itAccess != DefaultAccessForVehicleProperty.end()) {
         defaultAccessMode = &itAccess->second;
     }
     VehiclePropertyChangeMode* defaultChangeMode = NULL;
diff --git a/automotive/vehicle/tools/generate_annotation_enums.py b/automotive/vehicle/tools/generate_annotation_enums.py
index 4ed19d3..5367f3f 100755
--- a/automotive/vehicle/tools/generate_annotation_enums.py
+++ b/automotive/vehicle/tools/generate_annotation_enums.py
@@ -109,64 +109,55 @@
 
 """
 
-CHANGE_MODE_CPP_HEADER = """#pragma once
+CHANGE_MODE_CPP_FORMATTER = """#pragma once
 
 #include <aidl/android/hardware/automotive/vehicle/VehicleProperty.h>
 #include <aidl/android/hardware/automotive/vehicle/VehiclePropertyChangeMode.h>
 
 #include <unordered_map>
 
-namespace aidl {
-namespace android {
-namespace hardware {
-namespace automotive {
-namespace vehicle {
-
-std::unordered_map<VehicleProperty, VehiclePropertyChangeMode> ChangeModeForVehicleProperty = {
+namespace aidl::android::hardware::automotive::vehicle {{
+std::unordered_map<VehicleProperty, VehiclePropertyChangeMode> ChangeModeForVehicleProperty = {{
+{0}
+}};
+}}  // aidl::android::hardware::automotive::vehicle
 """
 
-CPP_FOOTER = """
-};
-
-}  // namespace vehicle
-}  // namespace automotive
-}  // namespace hardware
-}  // namespace android
-}  // aidl
-"""
-
-ACCESS_CPP_HEADER = """#pragma once
+ACCESS_CPP_FORMATTER = """#pragma once
 
 #include <aidl/android/hardware/automotive/vehicle/VehicleProperty.h>
 #include <aidl/android/hardware/automotive/vehicle/VehiclePropertyAccess.h>
 
 #include <unordered_map>
 
-namespace aidl {
-namespace android {
-namespace hardware {
-namespace automotive {
-namespace vehicle {
+namespace aidl::android::hardware::automotive::vehicle {{
+// This map represents the default access mode for each property.
+std::unordered_map<VehicleProperty, VehiclePropertyAccess> DefaultAccessForVehicleProperty = {{
+{0}
+}};
 
-std::unordered_map<VehicleProperty, VehiclePropertyAccess> AccessForVehicleProperty = {
+// This map represents the allowed access modes for each property.
+std::unordered_map<VehicleProperty, std::vector<VehiclePropertyAccess>>
+        AllowedAccessForVehicleProperty = {{
+{1}
+}};
+}}  // aidl::android::hardware::automotive::vehicle
 """
 
-VERSION_CPP_HEADER = """#pragma once
+VERSION_CPP_FORMATTER = """#pragma once
 
 #include <aidl/android/hardware/automotive/vehicle/VehicleProperty.h>
 
 #include <unordered_map>
 
-namespace aidl {
-namespace android {
-namespace hardware {
-namespace automotive {
-namespace vehicle {
-
-std::unordered_map<VehicleProperty, int32_t> VersionForVehicleProperty = {
+namespace aidl::android::hardware::automotive::vehicle {{
+std::unordered_map<VehicleProperty, int32_t> VersionForVehicleProperty = {{
+{0}
+}};
+}}  // aidl::android::hardware::automotive::vehicle
 """
 
-ANNOTATIONS_CPP_HEADER = """#pragma once
+ANNOTATIONS_CPP_FORMATTER = """#pragma once
 
 #include <aidl/android/hardware/automotive/vehicle/VehicleProperty.h>
 
@@ -174,67 +165,79 @@
 #include <unordered_map>
 #include <unordered_set>
 
-namespace aidl {
-namespace android {
-namespace hardware {
-namespace automotive {
-namespace vehicle {
-
+namespace aidl::android::hardware::automotive::vehicle {{
 std::unordered_map<VehicleProperty, std::unordered_set<std::string>>
-        AnnotationsForVehicleProperty = {
+        AnnotationsForVehicleProperty = {{
+{0}
+}};
+}}  // aidl::android::hardware::automotive::vehicle
 """
 
-CHANGE_MODE_JAVA_HEADER = """package android.hardware.automotive.vehicle;
+CHANGE_MODE_JAVA_FORMATTER = """package android.hardware.automotive.vehicle;
 
 import java.util.Map;
 
-public final class ChangeModeForVehicleProperty {
+public final class ChangeModeForVehicleProperty {{
 
     public static final Map<Integer, Integer> values = Map.ofEntries(
-"""
-
-JAVA_FOOTER = """
+{0}
     );
 
-}
+}}
 """
 
-ACCESS_JAVA_HEADER = """package android.hardware.automotive.vehicle;
+ACCESS_JAVA_FORMATTER = """package android.hardware.automotive.vehicle;
 
 import java.util.Map;
 
-public final class AccessForVehicleProperty {
+public final class AccessForVehicleProperty {{
 
     public static final Map<Integer, Integer> values = Map.ofEntries(
+{0}
+    );
+
+}}
 """
 
-ENUM_JAVA_HEADER = """package android.hardware.automotive.vehicle;
+ENUM_JAVA_FORMATTER = """package android.hardware.automotive.vehicle;
 
 import java.util.List;
 import java.util.Map;
 
-public final class EnumForVehicleProperty {
+public final class EnumForVehicleProperty {{
 
     public static final Map<Integer, List<Class<?>>> values = Map.ofEntries(
+{0}
+    );
+
+}}
 """
 
-UNITS_JAVA_HEADER = """package android.hardware.automotive.vehicle;
+UNITS_JAVA_FORMATTER = """package android.hardware.automotive.vehicle;
 
 import java.util.Map;
 
-public final class UnitsForVehicleProperty {
+public final class UnitsForVehicleProperty {{
 
     public static final Map<Integer, Integer> values = Map.ofEntries(
+{0}
+    );
+
+}}
 """
 
-ANNOTATIONS_JAVA_HEADER = """package android.hardware.automotive.vehicle;
+ANNOTATIONS_JAVA_FORMATTER = """package android.hardware.automotive.vehicle;
 
 import java.util.Set;
 import java.util.Map;
 
-public final class AnnotationsForVehicleProperty {
+public final class AnnotationsForVehicleProperty {{
 
     public static final Map<Integer, Set<String>> values = Map.ofEntries(
+{0}
+    );
+
+}}
 """
 
 
@@ -382,10 +385,10 @@
                     # Treat empty line comment as a new line.
                     config.comment += '\n'
 
-    def convert(self, output, header, footer, cpp, field):
+    def convert(self, output, formatter, cpp, field):
         """Converts the property config file to C++/Java output file."""
         counter = 0
-        content = LICENSE + header
+        content = ''
         for config in self.configs:
             if field == 'change_mode':
                 if cpp:
@@ -413,7 +416,7 @@
             elif field == 'annotations':
                 if len(config.annotations) < 1:
                     continue
-                joined_annotation_strings = ', '.join(['"' + annotation + '"' for annotation in config.annotations])
+                joined_annotation_strings = ', '.join(['"' + annotation + '"' for annotation in sorted(config.annotations)])
                 if cpp:
                     value = "{" + joined_annotation_strings + "}"
                 else:
@@ -434,7 +437,19 @@
         if not cpp:
             content = content[:-1]
 
-        content += footer
+        if field != 'access_mode' or not cpp:
+            content = LICENSE + formatter.format(content)
+        else:
+            content2 = ''
+            counter = 0
+            for config in self.configs:
+                if counter != 0:
+                    content2 += '\n'
+                value = ', '. join(['VehiclePropertyAccess::' + access_mode for access_mode in config.access_modes])
+                content2 += TAB + TAB + '{{VehicleProperty::{0}, {{{1}}}}},'.format(config.name, value)
+                counter += 1
+            content = LICENSE + formatter.format(content, content2)
+
 
         with open(output, 'w') as f:
             f.write(content)
@@ -480,10 +495,8 @@
         self.type = type
         self.cpp_file_path = None
         self.java_file_path = None
-        self.cpp_header = None
-        self.java_header = None
-        self.cpp_footer = None
-        self.java_footer = None
+        self.cpp_formatter = None
+        self.java_formatter = None
         self.cpp_output_file = None
         self.java_output_file = None
 
@@ -493,27 +506,21 @@
     def setJavaFilePath(self, java_file_path):
         self.java_file_path = java_file_path
 
-    def setCppHeader(self, cpp_header):
-        self.cpp_header = cpp_header
+    def setCppFormatter(self, cpp_formatter):
+        self.cpp_formatter = cpp_formatter
 
-    def setCppFooter(self, cpp_footer):
-        self.cpp_footer = cpp_footer
-
-    def setJavaHeader(self, java_header):
-        self.java_header = java_header
-
-    def setJavaFooter(self, java_footer):
-        self.java_footer = java_footer
+    def setJavaFormatter(self, java_formatter):
+        self.java_formatter = java_formatter
 
     def convert(self, file_parser, check_only, temp_files):
         if self.cpp_file_path:
             output_file = GeneratedFile._getOutputFile(self.cpp_file_path, check_only, temp_files)
-            file_parser.convert(output_file, self.cpp_header, self.cpp_footer, True, self.type)
+            file_parser.convert(output_file, self.cpp_formatter, True, self.type)
             self.cpp_output_file = output_file
 
         if self.java_file_path:
             output_file = GeneratedFile._getOutputFile(self.java_file_path, check_only, temp_files)
-            file_parser.convert(output_file, self.java_header, self.java_footer, False, self.type)
+            file_parser.convert(output_file, self.java_formatter, False, self.type)
             self.java_output_file = output_file
 
     def cmp(self):
@@ -577,46 +584,37 @@
     change_mode = GeneratedFile('change_mode')
     change_mode.setCppFilePath(os.path.join(android_top, CHANGE_MODE_CPP_FILE_PATH))
     change_mode.setJavaFilePath(os.path.join(android_top, CHANGE_MODE_JAVA_FILE_PATH))
-    change_mode.setCppHeader(CHANGE_MODE_CPP_HEADER)
-    change_mode.setCppFooter(CPP_FOOTER)
-    change_mode.setJavaHeader(CHANGE_MODE_JAVA_HEADER)
-    change_mode.setJavaFooter(JAVA_FOOTER)
+    change_mode.setCppFormatter(CHANGE_MODE_CPP_FORMATTER)
+    change_mode.setJavaFormatter(CHANGE_MODE_JAVA_FORMATTER)
     generated_files.append(change_mode)
 
     access_mode = GeneratedFile('access_mode')
     access_mode.setCppFilePath(os.path.join(android_top, ACCESS_CPP_FILE_PATH))
     access_mode.setJavaFilePath(os.path.join(android_top, ACCESS_JAVA_FILE_PATH))
-    access_mode.setCppHeader(ACCESS_CPP_HEADER)
-    access_mode.setCppFooter(CPP_FOOTER)
-    access_mode.setJavaHeader(ACCESS_JAVA_HEADER)
-    access_mode.setJavaFooter(JAVA_FOOTER)
+    access_mode.setCppFormatter(ACCESS_CPP_FORMATTER)
+    access_mode.setJavaFormatter(ACCESS_JAVA_FORMATTER)
     generated_files.append(access_mode)
 
     enum_types = GeneratedFile('enum_types')
     enum_types.setJavaFilePath(os.path.join(android_top, ENUM_JAVA_FILE_PATH))
-    enum_types.setJavaHeader(ENUM_JAVA_HEADER)
-    enum_types.setJavaFooter(JAVA_FOOTER)
+    enum_types.setJavaFormatter(ENUM_JAVA_FORMATTER)
     generated_files.append(enum_types)
 
     unit_type = GeneratedFile('unit_type')
     unit_type.setJavaFilePath(os.path.join(android_top, UNITS_JAVA_FILE_PATH))
-    unit_type.setJavaHeader(UNITS_JAVA_HEADER)
-    unit_type.setJavaFooter(JAVA_FOOTER)
+    unit_type.setJavaFormatter(UNITS_JAVA_FORMATTER)
     generated_files.append(unit_type)
 
     version = GeneratedFile('version')
     version.setCppFilePath(os.path.join(android_top, VERSION_CPP_FILE_PATH))
-    version.setCppHeader(VERSION_CPP_HEADER)
-    version.setCppFooter(CPP_FOOTER)
+    version.setCppFormatter(VERSION_CPP_FORMATTER)
     generated_files.append(version)
 
     annotations = GeneratedFile('annotations')
     annotations.setCppFilePath(os.path.join(android_top, ANNOTATIONS_CPP_FILE_PATH))
     annotations.setJavaFilePath(os.path.join(android_top, ANNOTATIONS_JAVA_FILE_PATH))
-    annotations.setCppHeader(ANNOTATIONS_CPP_HEADER)
-    annotations.setCppFooter(CPP_FOOTER)
-    annotations.setJavaHeader(ANNOTATIONS_JAVA_HEADER)
-    annotations.setJavaFooter(JAVA_FOOTER)
+    annotations.setCppFormatter(ANNOTATIONS_CPP_FORMATTER)
+    annotations.setJavaFormatter(ANNOTATIONS_JAVA_FORMATTER)
     generated_files.append(annotations)
 
     temp_files = []
diff --git a/biometrics/face/aidl/vts/Android.bp b/biometrics/face/aidl/vts/Android.bp
index e037eac..1b3a93a 100644
--- a/biometrics/face/aidl/vts/Android.bp
+++ b/biometrics/face/aidl/vts/Android.bp
@@ -28,4 +28,5 @@
         "general-tests",
         "vts",
     ],
+    disable_framework: false,
 }
diff --git a/biometrics/face/aidl/vts/VtsHalBiometricsFaceTargetTest.cpp b/biometrics/face/aidl/vts/VtsHalBiometricsFaceTargetTest.cpp
index 08ab5d6..686f61e 100644
--- a/biometrics/face/aidl/vts/VtsHalBiometricsFaceTargetTest.cpp
+++ b/biometrics/face/aidl/vts/VtsHalBiometricsFaceTargetTest.cpp
@@ -186,6 +186,7 @@
 
     void TearDown() override {
         // Close the mSession.
+        ASSERT_NE(mSession, nullptr);
         ASSERT_TRUE(mSession->close().isOk());
 
         // Make sure the mSession is closed.
diff --git a/biometrics/fingerprint/aidl/vts/Android.bp b/biometrics/fingerprint/aidl/vts/Android.bp
index 7c9cd8c..2b4f657 100644
--- a/biometrics/fingerprint/aidl/vts/Android.bp
+++ b/biometrics/fingerprint/aidl/vts/Android.bp
@@ -27,5 +27,5 @@
         "general-tests",
         "vts",
     ],
-    disable_framework: true,
+    disable_framework: false,
 }
diff --git a/bluetooth/aidl/default/net_bluetooth_mgmt.cpp b/bluetooth/aidl/default/net_bluetooth_mgmt.cpp
index 24693ef..6b0cd63 100644
--- a/bluetooth/aidl/default/net_bluetooth_mgmt.cpp
+++ b/bluetooth/aidl/default/net_bluetooth_mgmt.cpp
@@ -259,8 +259,8 @@
 int NetBluetoothMgmt::openHci(int hci_interface) {
   ALOGI("opening hci interface %d", hci_interface);
 
-  // Block Bluetooth.
-  rfkill(1);
+  // Unblock Bluetooth.
+  rfkill(0);
 
   // Wait for the HCI interface to complete initialization or to come online.
   int hci = waitHciDev(hci_interface);
@@ -300,8 +300,8 @@
     bt_fd_ = -1;
   }
 
-  // Unblock Bluetooth.
-  rfkill(0);
+  // Block Bluetooth.
+  rfkill(1);
 }
 
 }  // namespace aidl::android::hardware::bluetooth::impl
diff --git a/gnss/aidl/default/Gnss.cpp b/gnss/aidl/default/Gnss.cpp
index 41720c0..1fd21d8 100644
--- a/gnss/aidl/default/Gnss.cpp
+++ b/gnss/aidl/default/Gnss.cpp
@@ -298,8 +298,14 @@
 ScopedAStatus Gnss::setPositionMode(const PositionModeOptions& options) {
     ALOGD("setPositionMode. minIntervalMs:%d, lowPowerMode:%d", options.minIntervalMs,
           (int)options.lowPowerMode);
-    mMinIntervalMs = std::max(1000, options.minIntervalMs);
-    mGnssMeasurementInterface->setLocationInterval(mMinIntervalMs);
+    if (std::max(1000, options.minIntervalMs) != mMinIntervalMs) {
+        mMinIntervalMs = std::max(1000, options.minIntervalMs);
+        mGnssMeasurementInterface->setLocationInterval(mMinIntervalMs);
+        if (mIsActive) {
+            stop();
+            start();
+        }
+    }
     return ScopedAStatus::ok();
 }
 
diff --git a/gnss/common/utils/default/MockLocation.cpp b/gnss/common/utils/default/MockLocation.cpp
index c90075f..512af21 100644
--- a/gnss/common/utils/default/MockLocation.cpp
+++ b/gnss/common/utils/default/MockLocation.cpp
@@ -21,7 +21,7 @@
 float gMockLatitudeDegrees{37.4219999};
 float gMockLongitudeDegrees{-122.0840575};
 float gMockAltitudeMeters{1.60062531};
-float gMockBearingDegrees{0};
-float gMockSpeedMetersPerSec{0};
+float gMockBearingDegrees{0.0001};  // a real location rarely has exactly zero bearing
+float gMockSpeedMetersPerSec{0.0001};
 
 }  // namespace android::hardware::gnss::common
diff --git a/nfc/aidl/vts/functional/VtsNfcBehaviorChangesTest.cpp b/nfc/aidl/vts/functional/VtsNfcBehaviorChangesTest.cpp
index a61f8ee..6db7e14 100644
--- a/nfc/aidl/vts/functional/VtsNfcBehaviorChangesTest.cpp
+++ b/nfc/aidl/vts/functional/VtsNfcBehaviorChangesTest.cpp
@@ -14,6 +14,7 @@
  * limitations under the License.
  */
 
+#include "nfc_api.h"
 #define LOG_TAG "nfc_behavior_changes_test"
 
 #include <aidl/Gtest.h>
@@ -21,6 +22,7 @@
 #include <aidl/android/hardware/nfc/BnNfc.h>
 #include <aidl/android/hardware/nfc/INfc.h>
 #include <android-base/logging.h>
+#include <android-base/properties.h>
 #include <android-base/stringprintf.h>
 #include <android/binder_process.h>
 #include <gtest/gtest.h>
@@ -43,9 +45,34 @@
 static SyncEvent sNfaVsCommand;    // event for VS commands
 static SyncEvent sNfaEnableDisablePollingEvent;
 static SyncEvent sNfaPowerChangeEvent;
+static std::vector<uint8_t> sCaps(0);
+static uint8_t sObserveModeState;
 static bool sIsNfaEnabled;
 static tNFA_STATUS sVSCmdStatus;
 
+static const int SET_PASSIVE_OBSERVER_TECH_TIMEOUT_MS = 15;
+
+static int get_vsr_api_level() {
+    int api_level =
+            ::android::base::GetIntProperty("ro.vendor.api_level", -1);
+    if (api_level != -1) {
+        return api_level;
+    }
+
+    api_level =
+            ::android::base::GetIntProperty("ro.board.api_level", -1);
+    if (api_level != -1) {
+        return api_level;
+    }
+
+    api_level =
+            ::android::base::GetIntProperty("ro.board.first_api_level", -1);
+    EXPECT_NE(api_level, -1) << "Could not find VSR API level.";
+
+    return api_level;
+
+}
+
 static void nfaDeviceManagementCallback(uint8_t dmEvent, tNFA_DM_CBACK_DATA* eventData) {
     LOG(DEBUG) << StringPrintf("%s: enter; event=0x%X", __func__, dmEvent);
 
@@ -119,6 +146,14 @@
         case NCI_MSG_PROP_ANDROID: {
             uint8_t android_sub_opcode = p_param[3];
             switch (android_sub_opcode) {
+                case NCI_QUERY_ANDROID_PASSIVE_OBSERVE: {
+                    sObserveModeState = p_param[5];
+                    LOG(INFO) << StringPrintf("Query observe mode state response is %x",
+                                              sObserveModeState);
+                    SyncEventGuard guard(sNfaVsCommand);
+                    sNfaVsCommand.notifyOne();
+                } break;
+                case NCI_ANDROID_SET_PASSIVE_OBSERVER_TECH:
                 case NCI_ANDROID_PASSIVE_OBSERVE: {
                     if (param_len == 5) {
                         if ((p_param[0] & NCI_MT_MASK) == (NCI_MT_RSP << NCI_MT_SHIFT)) {
@@ -138,6 +173,12 @@
                 case NCI_ANDROID_POLLING_FRAME_NTF: {
                     // TODO
                 } break;
+                case NCI_ANDROID_GET_CAPS: {
+                    sVSCmdStatus = p_param[4];
+                    SyncEventGuard guard(sNfaVsCommand);
+                    sCaps.assign(p_param + 8, p_param + param_len);
+                    sNfaVsCommand.notifyOne();
+                } break;
                 default:
                     LOG(WARNING) << StringPrintf("Unknown Android sub opcode %x",
                                                  android_sub_opcode);
@@ -170,7 +211,7 @@
 
     if (status == NFA_STATUS_OK) {
         if (!sNfaVsCommand.wait(1000)) {
-            LOG(WARNING) << "Timeout waiting for NFA VS command response";
+            LOG(WARNING) << "Timeout waiting for set observe mode command response";
             return NFA_STATUS_TIMEOUT;
         }
     }
@@ -178,10 +219,83 @@
     return status;
 }
 
+/*
+ * Get observe mode state.
+ */
+tNFA_STATUS static nfaQueryObserveModeState() {
+    tNFA_STATUS status = NFA_STATUS_FAILED;
+
+    uint8_t cmd[] = {NCI_QUERY_ANDROID_PASSIVE_OBSERVE};
+
+    status = NFA_SendVsCommand(NCI_MSG_PROP_ANDROID, sizeof(cmd), cmd, nfaVSCallback);
+
+    if (status == NFA_STATUS_OK) {
+        if (!sNfaVsCommand.wait(1000)) {
+            LOG(WARNING) << "Timeout waiting for query observe mode response";
+            return NFA_STATUS_TIMEOUT;
+        }
+    }
+
+    return status;
+}
+
+/*
+ * Enable per-technology observe mode.
+ */
+tNFA_STATUS static nfaSetPassiveObserverTech(uint8_t tech_mask) {
+    tNFA_STATUS status = NFA_STATUS_FAILED;
+
+    uint8_t cmd[] = {NCI_ANDROID_SET_PASSIVE_OBSERVER_TECH, tech_mask};
+
+    status = NFA_SendVsCommand(NCI_MSG_PROP_ANDROID, sizeof(cmd), cmd, nfaVSCallback);
+
+    if (status == NFA_STATUS_OK) {
+        if (!sNfaVsCommand.wait(SET_PASSIVE_OBSERVER_TECH_TIMEOUT_MS)) {
+            LOG(WARNING) << "Timeout waiting for set observer tech response";
+            return NFA_STATUS_TIMEOUT;
+        }
+    }
+
+    return status;
+}
+
+/*
+ * Get chipset capabilities.
+ */
+tNFA_STATUS static nfaGetCaps() {
+    tNFA_STATUS status = NFA_STATUS_FAILED;
+
+    uint8_t cmd[] = {NCI_ANDROID_GET_CAPS};
+    status = NFA_SendVsCommand(NCI_MSG_PROP_ANDROID, sizeof(cmd), cmd, nfaVSCallback);
+
+    if (status == NFA_STATUS_OK) {
+        if (!sNfaVsCommand.wait(1000)) {
+            LOG(WARNING) << "Timeout waiting for GET_CAPS response";
+            return NFA_STATUS_TIMEOUT;
+        }
+    }
+
+    return status;
+}
+
+/*
+ * Get observe mode capabilities.
+ */
+uint8_t static getCapsPassiveObserverModeValue() {
+    return sCaps[2];
+}
+
 class NfcBehaviorChanges : public testing::TestWithParam<std::string> {
-  protected:
+protected:
     void SetUp() override {
         tNFA_STATUS status = NFA_STATUS_OK;
+        status = NFA_StartRfDiscovery();
+        ASSERT_EQ(status, NFA_STATUS_OK);
+        ASSERT_TRUE(sNfaEnableDisablePollingEvent.wait(1000)) << "Timeout starting RF discovery";
+    }
+
+    static void SetUpTestSuite() {
+        tNFA_STATUS status = NFA_STATUS_OK;
 
         sIsNfaEnabled = false;
         sVSCmdStatus = NFA_STATUS_OK;
@@ -204,34 +318,150 @@
         }
 
         ASSERT_TRUE(sIsNfaEnabled) << "Could not initialize NFC controller";
-
-        status = NFA_StartRfDiscovery();
-        ASSERT_EQ(status, NFA_STATUS_OK);
-        ASSERT_TRUE(sNfaEnableDisablePollingEvent.wait(1000)) << "Timeout starting RF discovery";
     }
 };
 
 /*
- * ObserveModeEnable:
+ * ObserveModeEnableDisable:
  * Attempts to enable observe mode. Does not test Observe Mode functionality,
  * but simply verifies that the enable command responds successfully.
  *
  * @VsrTest = GMS-VSR-3.2.8-001
  */
 TEST_P(NfcBehaviorChanges, ObserveModeEnableDisable) {
+    if (get_vsr_api_level() < 202404) {
+        GTEST_SKIP() << "Skipping test for board API level < 202404";
+    }
+
     tNFA_STATUS status = nfaObserveModeEnable(true);
     ASSERT_EQ(status, NFA_STATUS_OK);
 
+    status = nfaQueryObserveModeState();
+    ASSERT_EQ(status, NFA_STATUS_OK);
+    ASSERT_NE(sObserveModeState, 0);
+
     status = nfaObserveModeEnable(false);
     ASSERT_EQ(status, NFA_STATUS_OK);
+
+    status = nfaQueryObserveModeState();
+    ASSERT_EQ(status, NFA_STATUS_OK);
+    ASSERT_EQ(sObserveModeState, 0);
+}
+
+/*
+ * SetPassiveObserverTech_individualTechnologies:
+ * Verifies per-technology observe mode is supported as a capability. Then sets observe mode
+ * for each individual technology and verifies the command succeeds.
+ *
+ * @VsrTest = GMS-VSR-3.2.8-002
+ */
+TEST_P(NfcBehaviorChanges, SetPassiveObserverTech_individualTechnologies) {
+    if (get_vsr_api_level() < 202504) {
+        GTEST_SKIP() << "Skipping test for board API level < 202504";
+    }
+
+    tNFC_STATUS status = nfaGetCaps();
+    ASSERT_EQ(status, NFC_STATUS_OK);
+    ASSERT_EQ(getCapsPassiveObserverModeValue(), 0x2);
+
+    status = nfaSetPassiveObserverTech(NCI_ANDROID_PASSIVE_OBSERVE_PARAM_ENABLE_A);
+    ASSERT_EQ(status, NFA_STATUS_OK);
+    status = nfaQueryObserveModeState();
+    ASSERT_EQ(status, NFA_STATUS_OK);
+    ASSERT_EQ(sObserveModeState, NCI_ANDROID_PASSIVE_OBSERVE_PARAM_ENABLE_A);
+
+    status = nfaSetPassiveObserverTech(NCI_ANDROID_PASSIVE_OBSERVE_PARAM_ENABLE_B);
+    ASSERT_EQ(status, NFA_STATUS_OK);
+    status = nfaQueryObserveModeState();
+    ASSERT_EQ(status, NFA_STATUS_OK);
+    ASSERT_EQ(sObserveModeState, NCI_ANDROID_PASSIVE_OBSERVE_PARAM_ENABLE_B);
+
+    status = nfaSetPassiveObserverTech(NCI_ANDROID_PASSIVE_OBSERVE_PARAM_ENABLE_V);
+    ASSERT_EQ(status, NFA_STATUS_OK);
+    status = nfaQueryObserveModeState();
+    ASSERT_EQ(status, NFA_STATUS_OK);
+    ASSERT_EQ(sObserveModeState, NCI_ANDROID_PASSIVE_OBSERVE_PARAM_ENABLE_V);
+
+    status = nfaSetPassiveObserverTech(NCI_ANDROID_PASSIVE_OBSERVE_PARAM_ENABLE_F);
+    ASSERT_EQ(status, NFA_STATUS_OK);
+    status = nfaQueryObserveModeState();
+    ASSERT_EQ(status, NFA_STATUS_OK);
+    ASSERT_EQ(sObserveModeState, NCI_ANDROID_PASSIVE_OBSERVE_PARAM_ENABLE_F);
+}
+
+/*
+ * SetPassiveObserverTech_allExceptF:
+ * Verifies observe mode can be enabled for NFC-A, NFC-B, NFC-V, and disable for NFC-F.
+ *
+ * @VsrTest = GMS-VSR-3.2.8-002
+ */
+TEST_P(NfcBehaviorChanges, SetPassiveObserverTech_allExceptF) {
+    if (get_vsr_api_level() < 202504) {
+        GTEST_SKIP() << "Skipping test for board API level < 202504";
+    }
+
+    tNFC_STATUS status = nfaSetPassiveObserverTech(NCI_ANDROID_PASSIVE_OBSERVE_PARAM_ENABLE_A |
+                                       NCI_ANDROID_PASSIVE_OBSERVE_PARAM_ENABLE_B |
+                                       NCI_ANDROID_PASSIVE_OBSERVE_PARAM_ENABLE_V);
+    ASSERT_EQ(status, NFA_STATUS_OK);
+    status = nfaQueryObserveModeState();
+    ASSERT_EQ(status, NFA_STATUS_OK);
+    ASSERT_EQ(sObserveModeState, NCI_ANDROID_PASSIVE_OBSERVE_PARAM_ENABLE_A |
+                        NCI_ANDROID_PASSIVE_OBSERVE_PARAM_ENABLE_B |
+                        NCI_ANDROID_PASSIVE_OBSERVE_PARAM_ENABLE_V);
+}
+
+/*
+ * SetPassiveObserverTech_allOnAndOff:
+ * Verifies observe mode can be enabled and disabled for all technologies.
+ *
+ * @VsrTest = GMS-VSR-3.2.8-002
+ */
+TEST_P(NfcBehaviorChanges, SetPassiveObserverTech_allOnAndOff) {
+    if (get_vsr_api_level() < 202504) {
+        GTEST_SKIP() << "Skipping test for board API level < 202504";
+    }
+
+    tNFC_STATUS status = nfaSetPassiveObserverTech(0x0F);
+    ASSERT_EQ(status, NFA_STATUS_OK);
+    status = nfaQueryObserveModeState();
+    ASSERT_EQ(status, NFA_STATUS_OK);
+    ASSERT_EQ(sObserveModeState, 0x0F);
+
+    status = nfaSetPassiveObserverTech(0x00);
+    ASSERT_EQ(status, NFA_STATUS_OK);
+    status = nfaQueryObserveModeState();
+    ASSERT_EQ(status, NFA_STATUS_OK);
+    ASSERT_EQ(sObserveModeState, 0x00);
+}
+
+/*
+ * SetPassiveObserverTech_testThroughput:
+ * Verifies observe mode can be enabled and disabled repeatedly without timing out or erroring.
+ *
+ * @VsrTest = GMS-VSR-3.2.8-002
+ */
+TEST_P(NfcBehaviorChanges, SetPassiveObserverTech_testThroughput) {
+    if (get_vsr_api_level() < 202504) {
+        GTEST_SKIP() << "Skipping test for board API level < 202504";
+    }
+
+    for (int i = 0; i < 100; ++i) {
+        tNFC_STATUS status = nfaSetPassiveObserverTech(0x0F);
+        ASSERT_EQ(status, NFA_STATUS_OK);
+
+        status = nfaSetPassiveObserverTech(0x00);
+        ASSERT_EQ(status, NFA_STATUS_OK);
+    }
 }
 
 GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(NfcBehaviorChanges);
 INSTANTIATE_TEST_SUITE_P(Nfc, NfcBehaviorChanges,
-                         testing::ValuesIn(::android::getAidlHalInstanceNames(INfc::descriptor)),
-                         ::android::PrintInstanceNameToString);
+        testing::ValuesIn(::android::getAidlHalInstanceNames(INfc::descriptor)),
+        ::android::PrintInstanceNameToString
+);
 
-int main(int argc, char** argv) {
+int main(int argc, char **argv) {
     testing::InitGoogleTest(&argc, argv);
     ABinderProcess_startThreadPool();
     std::system("/system/bin/svc nfc disable"); /* Turn off NFC service */
diff --git a/wifi/aidl/default/wifi_legacy_hal.cpp b/wifi/aidl/default/wifi_legacy_hal.cpp
index c6d6177..812c419 100644
--- a/wifi/aidl/default/wifi_legacy_hal.cpp
+++ b/wifi/aidl/default/wifi_legacy_hal.cpp
@@ -1931,6 +1931,16 @@
     return {capabs, status};
 }
 
+void invalidateTwtInternalCallbacks() {
+    on_twt_failure_internal_callback = nullptr;
+    on_twt_session_create_internal_callback = nullptr;
+    on_twt_session_update_internal_callback = nullptr;
+    on_twt_session_teardown_internal_callback = nullptr;
+    on_twt_session_stats_internal_callback = nullptr;
+    on_twt_session_suspend_internal_callback = nullptr;
+    on_twt_session_resume_internal_callback = nullptr;
+}
+
 wifi_error WifiLegacyHal::twtRegisterEvents(
         const std::string& ifaceName, const on_twt_failure& on_twt_failure_user_callback,
         const on_twt_session_create& on_twt_session_create_user_callback,
@@ -1984,11 +1994,15 @@
         on_twt_session_resume_user_callback(id, session_id);
     };
 
-    return global_func_table_.wifi_twt_register_events(
+    wifi_error status = global_func_table_.wifi_twt_register_events(
             getIfaceHandle(ifaceName),
             {onAsyncTwtError, onAsyncTwtSessionCreate, onAsyncTwtSessionUpdate,
              onAsyncTwtSessionTeardown, onAsyncTwtSessionStats, onAsyncTwtSessionSuspend,
              onAsyncTwtSessionResume});
+    if (status != WIFI_SUCCESS) {
+        invalidateTwtInternalCallbacks();
+    }
+    return status;
 }
 
 wifi_error WifiLegacyHal::twtSessionSetup(const std::string& ifaceName, uint32_t cmdId,
@@ -2226,6 +2240,7 @@
     on_twt_event_device_notify_callback = nullptr;
     on_chre_nan_rtt_internal_callback = nullptr;
     on_cached_scan_results_internal_callback = nullptr;
+    invalidateTwtInternalCallbacks();
 }
 
 }  // namespace legacy_hal
diff --git a/wifi/aidl/vts/functional/wifi_sta_iface_aidl_test.cpp b/wifi/aidl/vts/functional/wifi_sta_iface_aidl_test.cpp
index 4f25171..29c47f5 100644
--- a/wifi/aidl/vts/functional/wifi_sta_iface_aidl_test.cpp
+++ b/wifi/aidl/vts/functional/wifi_sta_iface_aidl_test.cpp
@@ -535,7 +535,12 @@
  */
 TEST_P(WifiStaIfaceAidlTest, SetDtimMultiplier) {
     // Multiplied value
-    EXPECT_TRUE(wifi_sta_iface_->setDtimMultiplier(2).isOk());
+    auto status = wifi_sta_iface_->setDtimMultiplier(2);
+    if (checkStatusCode(&status, WifiStatusCode::ERROR_NOT_SUPPORTED)) {
+        GTEST_SKIP() << "SetDtimMultiplier is not supported";
+    }
+    EXPECT_TRUE(status.isOk());
+
     // Driver default value
     EXPECT_TRUE(wifi_sta_iface_->setDtimMultiplier(0).isOk());
 }
@@ -560,12 +565,17 @@
     uint16_t etherType = 0x0800;  // IPv4
     uint32_t periodInMs = 1000;   // 1 sec
 
-    // Expected to fail with test values
-    EXPECT_FALSE(wifi_sta_iface_
-                         ->startSendingKeepAlivePackets(kTestCmdId, ipPacketData, etherType,
-                                                        kTestMacAddr1, kTestMacAddr2, periodInMs)
-                         .isOk());
-    EXPECT_FALSE(wifi_sta_iface_->stopSendingKeepAlivePackets(kTestCmdId).isOk());
+    auto status = wifi_sta_iface_->startSendingKeepAlivePackets(
+            kTestCmdId, ipPacketData, etherType, kTestMacAddr1, kTestMacAddr2, periodInMs);
+    if (!status.isOk()) {
+        // The device may not support this operation or the specific test values
+        GTEST_SKIP() << "StartAndStopSendingKeepAlivePackets is not supported"
+                     << ", status=" << status.getServiceSpecificError();
+    }
+    EXPECT_TRUE(status.isOk());
+
+    // If start was successful, then stop should also work
+    EXPECT_TRUE(wifi_sta_iface_->stopSendingKeepAlivePackets(kTestCmdId).isOk());
 }
 
 GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(WifiStaIfaceAidlTest);